gpt4 book ai didi

javascript 新正则表达式动态

转载 作者:行者123 更新时间:2023-11-29 18:49:46 24 4
gpt4 key购买 nike

我正在创建一个动态 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() 从 PHP 获取,value 是我的文本框值

最佳答案

由于您正在使用 php 来回显您的正则表达式,因此您可以利用 php 的 preg_quote function像这样预先转义所有特殊的正则表达式元字符:

var regex = /<?php echo preg_quote($regex, '/'); ?>/

请注意,这里不需要调用 new RegExp,因为 Javascript 将始终为正则表达式获取静态字符串。

关于javascript 新正则表达式动态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51728975/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com