1
我想修改无效的正则表达式,而不是抛出一个错误,但在引发错误之前,我不能得到无效的正则表达式的串...修改无效的JavaScript
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)
我希望能够来定义正则表达式的正则表达式,而不是作为一个字符串。可以做到吗?
你想用这个做什么? – Blender 2013-02-22 11:12:51
我想能够定义什么javascript认为是无效的正则表达式(在这种情况下,包括一个有条件的'(?(1)r | e)'),并拦截和修改(所以它可以被消毒)解释器会抛出一个错误。 – 2013-02-22 11:15:07
我明白了,但为什么? – Blender 2013-02-22 11:15:45