我遇到了一些遗留代码,我们尝试使用javascript正则表达式对字符串进行精确匹配。
我试图理解为什么他们在匹配字符串之前和之后使用/。
例如
var match = thinger.match(/stringToMatch/);
这个角色做了什么?
答案 0 :(得分:3)
/regex here/
是一种在javascript中声明正则表达式的方法。
/
字符是正则表达式声明的分隔符,就像单引号或双引号是字符串声明的分隔符一样。
有关书面说明,请参阅MDN regular expression reference page。可以在javascript中使用以下两种方式声明正则表达式:
var re = /match string here/i;
var re = new RegExp("match string here", "i");
使用/regex here/
方法的优点是:
/
使用new RegExp("regex here")
方法的优点是:
new RegExp("first" + foo + "whatever")
中那样,您无法使用其他方法。答案 1 :(得分:2)
答案 2 :(得分:1)
它是Regular Expression的分隔符。就像您可以通过键入'string'
而不是调用其构造函数new String('string')
来创建新的原始字符串一样,因此您可以使用/regexp/
而不是new RegExp('regexp')
指定RegExp。
答案 3 :(得分:0)
它们是分隔符,用于指定正则表达式的开头和结尾。您还可以附加/ i等运算符以使正则表达式独立。