javascript核心技术(五十八)正则表达式(一)JS中的正则对象方法 test exec

[复制链接]
查看: 1023|回复: 31
发表于 2023-1-29 18:17:53 | 显示全部楼层 | 阅读模式
首先我们看一下JS的正则对象长什么样
<!DOCTYPE html>
<html>

<head>
        <title>JS中的正则对象方法 test exec</title>
</head>

<body>
        <script type="text/javascript">
                console.log(RegExp.prototype);//查看构造函数的原型对象
                // console.log((new RegExp()).__proto__);//查看实例对象的原型对象
        </script>
</body>

</html>

javascript核心技术(五十八)正则表达式(一)JS中的正则对象方法 test exec

以上代码中我们通过查看正则构造函数RegExp的原型对象的方式可以看到RegExp实例对象的方法,其中有两个方法比较常用,text和exec,其余几乎用不到,的我们就不讲了。

在讲正则表达式之前,我们需要知道的是,正则表达式也是一种字符串,只不过这个字符串比较特殊。
普通字符串是写在单双引号之间的,而正则表达式是写到两个正斜线之间,例如:/这里写正则表达式/这里写修饰符。

一、test方法
用来测试匹配是否成功,成功返回true,失败返回false。

<!DOCTYPE html>
<html>

<head>
        <title>JS中的正则对象方法 test exec</title>
</head>

<body>
        <script type="text/javascript">
        var str = 'teamczyx.com';
        var pattern = /^[a-z]/;//以小写字母开头
        var res = pattern.test(str);//测试被匹配的字符串是否以小写字母开头
        console.log(res);//true
        if(res){
                console.log('格式正确');
        }else{
                console.log('格式错误');
        }
        </script>
</body>

</html>


以上我们定义了一个正则表达式,var pattern = /^[a-z]/;,其中pattern就是正则表达式构造函数RegExp的实例对象。
正则表达式构造函数RegExp和字符串构造函数String非常类似,我们不必通过new RegExp()来取得实例对象,字面量定义即可。
如同var str='hello'一样,str就是一个String对象。

有了正则对象后,我们通过pattern.test()的方式调用实例对象上的test方法测试一个字符串是否符合我们的正则规则,如果符合就返回true,否则返回false。
至于其中的正则表达式^[a-z]的写法,目前我们先不必理解,后面会讲的。

执行结果如下:
javascript核心技术(五十八)正则表达式(一)JS中的正则对象方法 test exec

二、exec方法
从字符串中取出符合正则表达式规则的字符串,成功返回字符串,失败返回null。
<!DOCTYPE html>
<html>

<head>
        <title>JS中的正则对象方法 test exec</title>
</head>

<body>
        <script type="text/javascript">
        var str = 'teamczyx.com';
        var pattern = /[a-z]/;//匹配小写字母字符串
        var res1 = pattern.exec(str);
        console.log(res1);//["p"] 只匹配一次,返回数组
        </script>
</body>

</html>

执行结果如下:
javascript核心技术(五十八)正则表达式(一)JS中的正则对象方法 test exec

以上代码中由于我们没有加修饰符g,所以只匹配到第一个。
如果加了修饰符g后,则每执行一次匹配就向后匹配一个,看代码:
<!DOCTYPE html>
<html>

<head>
        <title>JS中的正则对象方法 test exec</title>
</head>

<body>
        <script type="text/javascript">
        var str = 'teamczyx.com';
        var pattern = /[a-z]/g;//匹配小写字母字符串
        var res1 = pattern.exec(str);
        console.log(res1);//["p"] 只匹配一次,返回数组
        var res1 = pattern.exec(str);
        console.log(res1);//["p"] 只匹配一次,返回数组
        </script>
</body>

</html>

javascript核心技术(五十八)正则表达式(一)JS中的正则对象方法 test exec

第一次匹配到t,第二次匹配到e。

ok,以上就是正则对象中两个常用的方法test和exec,大家自己练习一下。
易博软件介绍

0

主题

13

帖子

7

积分

营销入门

Rank: 2

积分
7
发表于 2023-2-23 00:09:25 | 显示全部楼层
是啊,受益匪浅!!!

0

主题

21

帖子

11

积分

营销入门

Rank: 2

积分
11
发表于 2023-3-5 21:26:10 | 显示全部楼层
看这篇文章的时候,当作者给出了两个程序而监考官依然不满意的时候,我也思考了一下更优的解法,也许就是-1的连续相乘呢..我很高兴我的判断是对的,我学c语言的时间不怎么长,也有做过那样的题目,老师给出的答案也跟作者写的差不多..其实初看到题目的时候,我也有过那种简洁的思路,只是那种想法转瞬即逝..  有一次,我重复做一道老师给的题目(附答案),后来我把程序给我的男朋友做(他也是学计算机的,而且算法还可以),他说老师的做法太差,然后给了我他做的答案....  有时候,一些算法还是要靠我们自己去摸索的....  感谢作者让我重新认识到这一点!

0

主题

10

帖子

6

积分

营销入门

Rank: 2

积分
6
发表于 2023-3-16 06:08:29 | 显示全部楼层
姐姐,你倒是把题目看清楚阿!!!!!!!!111  
发表于 2023-3-24 22:30:23 | 显示全部楼层
我让人受用,人之间就应该这样交流。

0

主题

6

帖子

3

积分

营销入门

Rank: 2

积分
3
发表于 2023-3-31 15:50:42 | 显示全部楼层
我很不喜欢你发帖子的风格    看了让人眼花!!    不要一行写几个字    另一行又写很长    看起来真的很不方便

0

主题

37

帖子

20

积分

营销入门

Rank: 2

积分
20
发表于 2023-4-5 07:52:25 | 显示全部楼层
是啊~~~学海无崖!忠无止尽~~~~~~
发表于 2023-4-10 19:58:28 | 显示全部楼层
经历过的是最有价值的  能让它与别人分享更好

0

主题

15

帖子

8

积分

营销入门

Rank: 2

积分
8
发表于 2023-4-15 09:55:53 | 显示全部楼层
^我看了.  我知道了一个程序员不容易  谢谢,前辈指点!  学习了~~~~~~~~~~~~~~~~  谢谢指点,收益很深

0

主题

25

帖子

14

积分

营销入门

Rank: 2

积分
14
发表于 2023-4-20 03:57:59 | 显示全部楼层
太谢谢了....!!  我刚刚进入大学,,,  对编程很迷茫  是你点醒了我!!  谢谢
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

1、请认真发帖,禁止回复纯表情,纯数字等无意义的内容!帖子内容不要太简单!
2、提倡文明上网,净化网络环境!抵制低俗不良违法有害信息。
3、如果你对主帖作者的帖子不屑一顾的话,请勿回帖。谢谢合作!
3、问答求助区发帖求助后,如有其他用户热心帮您解决问题后,请自觉点击设为最佳答案按钮。

 
 
QQ在线客服
QQ技术支持
工作时间:
8:00-18:00
软著登字:
1361266号
官方微信扫一扫
weixin

QQ|小黑屋|慈众营销 ( 粤ICP备15049986号 )|网站地图

自动发帖软件 | 自动发帖器 | 营销推广软件 | 网络营销工具 | 网络营销软件 | 网站推广工具 | 网络推广软件 | 网络推广工具 | 网页推广软件 | 信息发布软件 | 网站推广工具 | 网页推广软件

Powered by Discuz! X3.4   © 2012-2020 Comsenz Inc.  慈众科技 - Collect from 深圳吉宝泰佛文化有限公司 公司地址:罗湖区黄贝街道深南东路集浩大厦A1403

返回顶部 返回列表