当前博客:正则表达式不能含有"或’吗?

98 次浏览【转载需注明来源】

博客作者:【野生程序菌】

个性签名:寒窗苦读十年一朝凤舞九天

例如:

/[\0\x08\x09\x1a\n\r"'\\\%]/g

其中含有双引号单引号就无法令代码正常运行比如以下代码

定义函数 特殊符号替换(欲替换文本) {
    返回 欲替换文本.替换(/[\0\x08\x09\x1a\n\r"'\\\%]/g, 定义函数 (命中文本) {
        调试输出(命中文本)
    });
}

出现以下错误提示

Uncaught SyntaxError: missing ) after argument list (at 测试.js:9:70)

默认排序
Generic placeholder image
Generic placeholder image
快码FOF编程 Time: 2023-10-24 16:42:30
定义函数 特殊符号替换(欲替换文本) {
    返回 欲替换文本.替换(特殊符号编译(/[\0\x08\x09\x1a\n\r"'\\\%]/g!!), 定义函数 (命中文本) {
        调试输出(命中文本);
    });
}

可以考虑使用:特殊符号编译(!!)将正则包裹起来。

例如:特殊符号编译(/[\0\x08\x09\x1a\n\r"'\\\%]/g!!)

原理:在快码FOF的JS代码中,编译器会对单引号和双引号进行成对匹配;也就是发现一个单引号就是去找另一个单引号匹配;所以像正则这种只有一个单引号或者只有一个双引号的存在;就会触发编译器扰乱这段代码。

一般遇见这些符号则可以使用特殊符号编译()进行包裹;这个命令的原理是将包含的代码进行特殊照顾;不参与编译器的处理;直接写入到编译后的代码中。

注意:目前只是对编译器做了更新;该命令可以直接使用,但不会有提示器提示;下个版本更新后则会有支持库的提示器提示。

重点:特殊符号编译(!!)总是以:特殊符号编译(开始  以!!)结束

注意:2023-10-24使用本命令需要重启一下IDE


正则表达式不能含有"或’吗?