gpt4 book ai didi

javascript - 将字符串转换为正则表达式

转载 作者:行者123 更新时间:2023-11-28 02:30:44 25 4
gpt4 key购买 nike

如何检查 JavaScript 字符串是否为 RegExp 格式,然后将其转换为 RegExp?

我找到了一种使用 RegExp 的方法,但规则太复杂,无法正确实现。

function str2Regex(str){
var rule = /\/(\\[^\x00-\x1f]|\[(\\[^\x00-\x1f]|[^\x00-\x1f\\\/])*\]|[^\x00-\x1f\\\/\[])+\/([gim]*)/;
var match = str.match(rule);
return match ? new RegExp(match[1],match[3]) : str;
}
<小时/>

现在我正在使用 /\/(.*)\/(?=[igm]*)([igm]*)/ ,它有效。

最佳答案

最简单的方法,也可能是最正确的方法,是使用 try/catch :

try {
r = new RegExp(str);
} catch(error) {
// no good
}

当字符串与格式良好的正则表达式不匹配时,您会收到SyntaxError

如果你想测试一个字符串,其值类似于编译后的正则表达式(例如“/\b=\b/g”,你可以使用这样的函数:

function checkCompiledRegex(str) {
if (str[0]!='/') return false;
var i = str.lastIndexOf('/');
if (i<=0) return false;
try {
new RegExp(str.slice(1, i), str.slice(i+1));
} catch(error) {
return false;
}
return true;
}

关于javascript - 将字符串转换为正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14220319/

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