st = "hello world! 123"
st.match(/\d*/)→ "“
st.match(/\d\d*/)→"123”
st1 = “hello world!123"
st1.match(/\d*/)→”"
不太了解的是.
為何 \d* 是 0-無限…
為何一個是 “”(\d→=0的意思)
另一個是 “123” (\d\d*, *=最長的意思…)
求解…謝謝
應該是第一個字就配完的意思吧
\d* = \d{0}的意思吧
st = "hello world! 123"
st.match(/\d*/)→ "“
st.match(/\d\d*/)→"123”
st1 = “hello world!123"
st1.match(/\d*/)→”"
不太了解的是.
為何 \d* 是 0-無限…
為何一個是 “”(\d→=0的意思)
另一個是 “123” (\d\d*, *=最長的意思…)
求解…謝謝
應該是第一個字就配完的意思吧
\d* = \d{0}的意思吧
* 代表比對前一個字元0個或0個以上
第一個條件是match(\d*)代表0個或0個以上數字
第二個條件match(\d\d*)第一個\d代表第一個字元是數字,\d*代表0個或0個以上數字,所以組合起來條件就是第一個字元要是數字第二個字元可以是0個或0個以上數字
\d* 不等於 \d{0}
{}這個符號代表數量,所以你上面寫\d{0}代表0個數字
ex, \d{1} “hello world! 123” 就會抓到 1
\d{2} “hello world! 123” 就會抓到 12
你的
\d*
代表的是『“無"或"數字一以上”』,所以開頭一開始就match到了,也就是"h"前面的"無"
而
\d\d*
代表數字一 + 上面的判斷,也就是一定要有數字,所以自然就會是後面的123
而另外一方面
/\d\d*/ 約等於 /\d+/
所以你應該要用的是 \d+
才對就是
對啊~
才想到第一個字就比對到了~~
st = "hello word! 123"
re = /\d*/
st.match(re) → ""
st =~ re → “0”
看上面就了解了~~
以為是比對到 123 那邊…
感謝…