Javascript 奇怪的是,Regexp不工作
我使用内部的regexp测试了以下代码,控制台日志打印为null。代码如下:Javascript 奇怪的是,Regexp不工作,javascript,regex,string,node.js,Javascript,Regex,String,Node.js,我使用内部的regexp测试了以下代码,控制台日志打印为null。代码如下: var decRegexp = new RegExp("[0-9]{2}-(\\n)*\s*[A-Z]{1,3}-(\\n)?\s*[0-9]{2,3}", "g"); var textToTest = "n° 14-\n DCC-71 du du 4 juin 2014" var decisionNumberMatches = textToTest.match(decRegexp); console.log
var decRegexp = new RegExp("[0-9]{2}-(\\n)*\s*[A-Z]{1,3}-(\\n)?\s*[0-9]{2,3}", "g");
var textToTest = "n° 14-\n DCC-71 du du 4 juin 2014"
var decisionNumberMatches = textToTest.match(decRegexp);
console.log(decisionNumberMatches);
说真的,我不明白为什么它不给我回“2014年14号-\n DCC-71杜杜4号”。我在上测试了这个regexp,它可以工作,所以可能是nodejs的一种奇怪行为。
regexp
对象要求您双重转义转义序列,因此请使用:
var decRegexp = new RegExp("[0-9]{2}-(\\n)*\\s*[A-Z]{1,3}-(\\n)?\\s*[0-9]{2,3}", "g");
RegExp
对象要求您双重转义转义序列,因此请使用:
var decRegexp = new RegExp("[0-9]{2}-(\\n)*\\s*[A-Z]{1,3}-(\\n)?\\s*[0-9]{2,3}", "g");
A中的\
必须作为\
转义
这就是为什么不应该使用字符串从常量表达式创建regexp的原因之一
使用:
(另一个原因是使用regex文本可以获得更好的性能)A中的\
必须作为\
转义
这就是为什么不应该使用字符串从常量表达式创建regexp的原因之一
使用:
(另一个原因是使用正则表达式文字可以获得更好的性能)实际上是传递到RegExp构造函数的字符串需要反斜杠转义是的,这就是我的意思。实际上是传递到RegExp构造函数的字符串需要反斜杠转义是的,这就是我的意思。