js如何判断字符串是正则表达式

let regexp = "/^[0-9]*$/";

类似这样:这是一个字符串,里面装着正则表达式。

那如何判断一个字符串的内容是合法的正则表达式?

阅读 12.3k
3 个回答

正则判断是不是正则
或者 这样试试行不行
var isreg;
try{
isreg=eval(regexp) instanceof RegExp
}catch(e){
isreg=false
}

你可以判断这个字符串是不是正则
但是你不能判断这个正则到底对不对。。。

这个需求本身就是很爆炸啊。 用正则判断是不是正则。。。
我真的不会留个印看大佬们发挥

写个简单的:
开头匹配以 /开头 搭配开头符合^有或无。
结尾匹配以 结尾符号$有或无 搭配/ 再搭配igm结尾的自由组合。
(实在太长了我自己先忽略m的搭配。。。)
中间匹配 实在不会写任意字符

/^\/\^?.*(\$?[\/|\/g|\/gi|\/i|\/ig])$/.test("/^sdk332$/ig")

这个找出来还是连合不合法不判断不了的 优秀...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题