javascript - 正则表达式适用于浏览器但不适用于 Node.js

标签 javascript regex node.js

我必须匹配给定变量中的一些字符串。假设我有变量

var x = 'elseif testing';

现在我想从这个字符串中获取值“testing”。这么写的。

x.match(/^elseif(.*)/);

后来我意识到有时我确实得到了字符串:

var x = 'else if testing';

所以我写了表达式来匹配:

x.match(/^else[\s+]if(.*)/);

这在浏览器上运行良好,但在 Node.js 上运行不佳。有什么原因吗?

最佳答案

尝试不使用双重转义符字符类:

x.match(/^else\s*if(.*)/i);

还添加了 i 用于不区分大小写的搜索。

另请注意 [\s+] 也将匹配文字 + 因为在 character class + 中(和许多其他正则表达式特殊字符)被认为是文字加号。

关于javascript - 正则表达式适用于浏览器但不适用于 Node.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20527689/

相关文章:

javascript - 如何检查可见 DOM 中是否存在元素?

javascript - 自定义 Jgraph mxCell 的连接输入和输出

python - 使用 re 查找多个标签之间的文本

javascript - 时间格式的正则表达式,如 DD :HH:MM:SS

javascript - 如何引用计算机上全局安装的依赖项?

javascript - 计算 Mongoose hook 内的平均值

javascript - 如何在 Chrome OS 或 Chrome 扩展程序的打包应用程序中启用摄像头和麦克风?

regex - 创建条件 bash 脚本代码

javascript - 正确读取多部分数据流(NodeJS)

node.js - 为什么 Nodejs 应用程序无法在 Windows IIS 上运行