繁体   English   中英

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”修饰符可能是必需的,也可能不是必需的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM