2015-04-04 105 views
-1

当我使用像regexpal.com这样的工具时,让我用我习惯的正则表达式。因此,例如,我想检查一个文本,如果匹配的单词至少有3个字母并以空格结束,则它将匹配'now ''noww '等。为什么我必须在javascript正则表达式上添加双反斜杠?

在regexpal.com这个正则表达式工程\w{3,}\s这符合上述两个字。

但在JavaScript上,我必须在w和s之前添加双反斜杠。像这样:

var regexp = new RegExp('\\w{3,}\\s','i'); 

否则它不起作用。我四处寻找答案并搜索了双反斜杠javascript正则表达式,但我得到的是完全不同的话题,关于如何避免反斜杠等。有人对此有解释吗?

回答

4

你可以在没有双反斜杠的情况下编写正则表达式,但是你需要把正则表达式作为分隔符转换成正斜杠。

/^\w{3,}\s$/.test('foo ') 

^行边界的开头匹配),$相匹配的线结束)帮助做一个确切的字符串匹配。您不需要修改器i,因为\w匹配大写和小写字母。

+0

谢谢,这也是非常丰富的。 – Aiden 2015-04-04 03:36:58

1

为什么?因为在字符串中,“\”引用下面的字符,所以“\ w”被视为“w”。它基本上是说“按字面处理下一个字符,不要解释它”。

为了避免这种情况,必须引用“\”,所以正则表达式解析器将“\\ w”视为“\ w”。

+0

谢谢,但我不明白为什么我的问题得到-4。我做错什么了吗? – Aiden 2015-04-04 03:31:20

+0

不知道,选民谁没有勇气解释他们的投票没有任何信任。幸运的是,它需要大量的反对票来取消投票。 ;-) – RobG 2015-04-04 05:03:05

相关问题