【发布时间】:2018-08-07 14:15:20
【问题描述】:
我正在创建一个动态的regex,但我对如何转义字符有疑问,所以有人可以对此有所了解吗?
我正在使用带有一些后端配置的 PHP,管理员可以从后端添加 regexp 以验证无效字符,我在 PHP 上得到了这个值,所以我做了什么
var regex = RegExp(<?php echo $regex ?>);
但我收到了SyntaxError: Invalid regular expression: 之类的错误,我知道我需要转义动态字符,但不知道如何转义。
编辑
我正在从后端尝试这个值
<>{}[\]!@#$+=%^*()/;
新编辑
根据@anubhava 的建议,我正在通过preg_quote() 转义特殊字符,但在 Regex.test 上它总是失败,我的意思是它总是得到 false,即使它应该返回 true。
这是我的代码,
var invalidCharRe = new RegExp(SOME_MY_VARIABLE);
var result = invalidCharRe.test(value)
其中SOME_MY_VARIABLE 是一个动态特殊字符(我通过preg_quote() 和value 从PHP 中获取它是我的文本框值
【问题讨论】:
-
您可以添加您尝试使用的值吗?
-
JavaScript 正则表达式应该用
/括起来,例如var regex = RegExp(/<\?php echo \$regex \?>/);。请详细说明您想要实现的目标。我认为我写的表达式应该逐字匹配<?php echo $regex ?>。 -
试试这个 php:
<?php echo preg_quote($regex, '/'); ?> -
请看我的编辑@Archer
-
@KeyurShah 你误解了评论。阿努巴瓦是正确的。
标签: javascript php regex string