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