鍍金池/ 問答/數(shù)據(jù)庫  HTML/ js正則的問題

js正則的問題

clipboard.png

clipboard.png

求大佬解釋為什么

回答
編輯回答
野橘

主要就是(?=),這個表示正向先行斷言,鏈接

你這個例子里面,就是找到一個位置,這個位置是數(shù)字,同時后面可以匹配括號里面的表達(dá)式,比如你匹配a1a也可以的。

2017年12月25日 07:46
編輯回答
巫婆

你試試這一個:
(?=.*[a-z])[a-z]
結(jié)果是a。
就知道了你獲取的過程是對的,但是如果想要a,就沒必要d+了吧。
你那兩個true的匹配結(jié)果都是'1'

2018年3月12日 12:15
編輯回答
焚音

這是正則表達(dá)式的正向先行斷言。

正則表達(dá)式:/(?=.*[a-z])\d+/ 分為兩部分:

  • (?=.*[a-z]) 這是正向先行斷言(?=)
  • \d+ 這是數(shù)字部分

正則表達(dá)式給出的字符模式,就是說在字母(或者空格,等)前面的數(shù)字就可以匹配。
所以,1a匹配結(jié)果是1,a1數(shù)字1后面沒有字母因此沒有匹配,1a1匹配第一個1,12 b匹配12

不過,你的正則表達(dá)式寫的比較古怪,正常應(yīng)該寫成 /\d+(?=.*[a-z])/ 這樣比較好理解一些。

參考:https://www.cnblogs.com/chip/...

2018年3月20日 20:28