我想修改无效的正则表达式而不是抛出错误,但是在抛出错误之前我无法获取无效的正则表达式的字符串...
var rex = /t(h)?u(?(1)r|e)sday/.replace(/\(\?\((\d)\)(.+?\|)(.+?)\)/g,'((?!\\$1)$2\\$1$3)').replace(/^\/|\/$/g,'')
这有效,但显然不是我正在寻找的解决方案......
try{
var rex = /t(h)?u(?(1)r|e)sday/
} catch(e){
var rex = new RegExp(e.toString().split(/: /)[2].replace(/\(\?\((\d)\)(.+?\|)(.+?)\)/g,'((?!\\$1)$2\\$1$3)').replace(/^\/|\/$/g,''))
}
console.log(rex)
我希望能够将正则表达式定义为正则表达式,而不是字符串。可以做到吗?