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