javascript - javascript RegExp : same regular expressions produce different result 的奇怪行为

标签 javascript regex

Possible Duplicate:
Why RegExp with global flag in Javascript give wrong results?

var reg1 = new RegExp('^http:\/\/abc\.com\/\d+$');
var reg2 = /^http:\/\/abc\.com\/\d+$/;

var url = 'http://abc.com/1657706754';

// expected: true, actual: false
document.write(reg1.test(url));
document.write('<br/>');
// expected: true, actual: true
document.write(reg2.test(url));

​请参阅上面的代码示例。 reg1reg2是相同的正则表达式,但为什么 test结果不同?我在 Chrome 中测试了它。这是在线演示:http://jsfiddle.net/DzfWC/

最佳答案

当您将其用作文字字符串时,您必须使用 \\ 对每个 \ 进行转义:

var reg1 = new RegExp('^http:\\/\\/abc\\.com\\/\\d+$');

关于javascript - javascript RegExp : same regular expressions produce different result 的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12367471/

相关文章:

javascript - 录制录制/背景录制时, Canvas 不会重新粉刷(webGl)

regex - 在 unix 中的字符串中第二次出现后删除所有内容

java - 正则表达式 : How to avoid matching a word in a string upon a condition

javascript - 在 if 语句中选择正确的条件

javascript - 正则表达式:用于限制字母数字字符的总长度,包括所有组

java - 在 Android 中执行数学方程式

javascript - 如何在 JavaScript 中使用 indexOf 和 filter()

php - preg_match_all 用于括号内和括号外的单词

JavaScript 正则表达式验证

c++ - 正则表达式替换文件扩展名前缀放置不起作用 - 替换匹配项