鍍金池/ 問(wèn)答/HTML/ js正則+*?匹配多個(gè)

js正則+*?匹配多個(gè)

為什么 /21?/.test('2S')的結(jié)果是true
如果說(shuō)是匹配了0個(gè),那為什么/21?/.test('SS')為false呢?

回答
編輯回答
半心人
? 字符
匹配前面一個(gè)表達(dá)式0次或者1次。等價(jià)于 {0,1}。

例如,/e?le?/ 匹配 "angel" 中的 'el',和 "angle" 中的 'le' 以及"oslo' 中的'l'。

如果緊跟在任何量詞 *、 +、? 或 {} 的后面,將會(huì)使量詞變?yōu)榉秦澙返模ㄆヅ浔M量少的字符),和缺省使用的貪婪模式(匹配盡可能多的字符)正好相反。

例如,對(duì) "123abc" 應(yīng)用 /d+/ 將會(huì)返回 "123",如果使用 /d+?/,那么就只會(huì)匹配到 "1"。

2018年4月9日 19:14
編輯回答
忘了我

/21?/ 匹配 21 和 2

2018年3月12日 19:27
編輯回答
有點(diǎn)壞

/21?/這個(gè)正則的意思是匹配 2 或者 21 的.
所以只要你test的字符串中有一個(gè)2就回返回true

2017年2月28日 00:39
編輯回答
壞脾滊

正解:http://blog.csdn.net/lxcnn/ar...
看完這個(gè)我覺(jué)得/21?/ 匹配的應(yīng)該是2和1?所以/SS/為false,而/2sss/為true

2017年9月20日 20:06