永发信息网

在js中,js正则表达式为什么要带// 双斜杠 。

答案:4  悬赏:20  手机版
解决时间 2021-03-04 06:04
  • 提问者网友:鼻尖触碰
  • 2021-03-03 18:12
在js中,js正则表达式为什么要带// 双斜杠 。
最佳答案
  • 五星知识达人网友:你可爱的野爹
  • 2021-03-03 18:25
在JavaScript当中,声明一个正则表达式对象的方式有两种。
一种是直接声明RegExp对象,一种是使用字面量。


你说的//双斜杠,就是使用字面量表达式的方式。两者并没有本质不同。
就像声明一个数组,我们既可以用new Array() 又可以 使用一对中括号[]的方式。

用字面量的方式有一个方便之处在于。不需要转移反斜杠字符了。因为在字符串中两个反斜杠代表一个反斜杠。


因此说,下面两种方式是等价的,只不过很多时候使用字面量的方式更加简介。通常这么设计的原因没有太多考量,主要是为了书写方便而已。
var rExp1 = new RegExp("\d+");
var rExp2 = /d+/;
//以上是等价的。
全部回答
  • 1楼网友:青尢
  • 2021-03-03 20:43
开始结束!
  • 2楼网友:天凉才是好个秋
  • 2021-03-03 19:48
因为,js可能并不是第一个使用正则表达式的语言
而perl这种语言却有最强大的正则,在perl里面正则就是主要用斜杠/分割的
在比较严格的语言,比如java里面,就不能用/,所以java用引号"
g表示连续循环匹配,在你当前用途里面是没有什么用处的
加上^字符串开始和$字符串结束,就限定了你的正则的适用范围了
就不会出现类似以下的错误 g34-24jkh 也会被匹配
  • 3楼网友:woshuo
  • 2021-03-03 18:47
正则表达式的前后使用/是语法规定,犹如字符串的前后使用引号一样。
你这个地方加不加g无所谓的,g表示多次匹配,只有在需要对每个匹配的项目进行处理(例如替换)时才有特殊意义。
第一个因为没有^和$,所以只有要数字和-就对,第二个有这两个符号,^表示开始,$表示结束,整体的意思就是必须完整匹配,不得有其它内容。例如ABC028-88888就可以匹配第一种方式,但是在第二种就会失败。
还有问题吗?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯