有这么个场景,需要将输入的数据A 作为正则表达式去校验/匹配 别的参数。没有对输入做任何限制,
try {
reg = new RegExp(reg); // reg:数据A
} catch (e) {
return;
}
现在是先将输入 数据new RegExp 处理了一下,但是如果用户输入的就是/d/
,/[a-z]{3,}/
这样的,就有点问题了,
请问这种怎么处理呢
你是要删除冗余的/
? 可以使用正则处理:
'/[a-z]{3,}/'.replace(/^(/)(.+)1$/, '$2'); // "[a-z]{3,}"
可以引导用户不要输入收尾/
。比如在输入框前后增加提示:
但是实现把用户输入的字符转成正则没那么简单,比如用户输入d
,内部要转成\d
,再转成正则。
可以参考https://regex101.com/的实现。