鍍金池/ 問(wèn)答/HTML/ "/^\d*$/".length只有6位,\號(hào)沒(méi)有被計(jì)入,有

"/^\d*$/".length只有6位,\號(hào)沒(méi)有被計(jì)入,有什么辦法嗎

正則格式的字符串會(huì)被忽略

我想拿到去掉首尾/的內(nèi)部正則,用new RegExp()獲得一個(gè)正則對(duì)象,但是\被忽略了,導(dǎo)致我的正則始終不對(duì)。

希望可以實(shí)現(xiàn)類(lèi)似這樣,對(duì)于"/^d$/" 可以獲取到"^\d$" ,對(duì)于"/^d$/ig"可以獲取到"^\d$"和"ig",但是\號(hào)被忽略,有點(diǎn)頭疼。

回答
編輯回答
心沉

斜線是轉(zhuǎn)移符,并不是字符串啊整體代表d。

clipboard.png

2017年2月25日 04:21
編輯回答
萌吟

正則字符串你得使用 \\ 替代 \

2018年3月27日 06:04
編輯回答
大濕胸

這個(gè)字符串應(yīng)該存在一個(gè)變量里面吧?如果不是es6有個(gè)方法:

var res = String.raw`"/^\d*$/ig"`.match(/\/(.*)\/(.*)/);
console.log(res[1],res[2]); //^\d*$ ig

如果是在變量里面,估計(jì)只能寫(xiě)一個(gè)map將當(dāng)前所有的轉(zhuǎn)義列表寫(xiě)進(jìn)去然后再做替換了。

2018年2月21日 01:42
編輯回答
深記你
var exp = new RegExp(/^\d*$/ig);
console.log(exp.source);  // "^\d*$"
console.log(exp.flag);  // "gi"
2017年5月12日 21:33