JavaScript 正则表达式匹配问题
JavaScript regular expression matching issue
var regExp=new RegExp(''[:bg']([A-Za-z'-'s]+)', 'g');
var text='something [:bg]text1[:en]text2 % something';
console.log(text.match(regExp));
我希望这个片段返回字符串"text1",但它返回以下数组:[":bg", ":en"]
我做错了什么?
使用正则表达式语法创建正则表达式:
var regExp = /'[:bg']([A-Za-z'-'s]+)/g;
否则,您必须将反斜杠加倍。当你从一个字符串开始时,你必须考虑到字符串本身将由JavaScript根据字符串常量语法中嵌入的元字符的规则进行解释。 只有这样,它才会被RegExp()
构造函数重新解释为正则表达式。 因此,字符串解析将"吃掉"您的反斜杠,而正则表达式将不同于您的预期。
编辑 — 正如@Rocket在评论中指出的那样,"g"修饰符可能是必需的,也可能不是必需的。
相关文章:
- 使用正则表达式评估电子邮件地址时出现性能问题
- 正则表达式匹配模式或匹配其他所有内容 - 匹配优先级问题
- 这个正则表达式的日期/时间有什么问题
- 为密码验证实现正则表达式时出现问题
- JavaScript 正则表达式匹配问题
- 我的电子邮件正则表达式有什么问题
- Javascript中的正则表达式问题转义特殊字符
- JavaScript正则表达式代码匹配字符和数字的问题
- url的正则表达式有问题
- 这个正则表达式有什么问题
- 为此模式编写正则表达式时遇到问题
- AngularJS ng-pattern的正则表达式问题
- 在这种情况下,正则表达式中的“[”是什么( 2 个问题)
- JS正则表达式结果表达式赋值问题
- 正则表达式替换问题
- 匹配 JavaScript 中的字符串时的正则表达式问题
- 奇怪的JavaScript正则表达式替换问题
- JavaScript正则表达式(缺少“/”),我该如何解决这个问题
- 我的验证码有什么问题?(正则表达式很好)
- JavaScript 我非常简单的正则表达式有什么问题