首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript RegEx不匹配[

JavaScript RegEx不匹配[
EN

Stack Overflow用户
提问于 2013-11-17 13:28:29
回答 1查看 58关注 0票数 3

我正在为.LRC制作一个JavaScript文件解析器,但遇到了一个障碍。我有以下代码:

代码语言:javascript
复制
var getTimecodes = new RegExp("\[[0-9]{2}:[0-9]{2}\.[0-9]{2}\]", "g");
var testLine = "[00:25.03][00:38.86][03:36.98][03:50.64]but man you should've seen him";
var timecodes = testLine.match(getTimecodes);
var lineText = testLine.replace(getTimecodes, "");

console.log(timecodes);
console.log(lineText);

根据我对RegEx和几个不同的RegEx测试站点(包括一个完全用JavaScript编写的测试站点)的理解,我应该得到以下结果:

["00:25.03“、"00:38.86”、"03:36.98“、"03:50.64"] 但你真该看看他

相反,我得到了以下输出:

"00:25.03“、”00:38.86]、“03:36.98]、"03:50.64]"] [[]][[]]你真该看看他

有人能说明一下这件事吗?我可能做了件蠢事,但我就是搞不懂是什么.

谢谢,YM

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-17 13:32:07

\\构造函数中使用double \\

代码语言:javascript
复制
var getTimecodes = new RegExp("\\[[0-9]{2}:[0-9]{2}\\.[0-9]{2}\\]", "g");

或者简单地说:

代码语言:javascript
复制
var getTimecodes = /\[[0-9]{2}:[0-9]{2}\.[0-9]{2}\]/g;

原因:,因为RegExp constructor接受字符串,因此字符串需要一个转义,正则表达式引擎需要第二个转义。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20031203

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档