這裏正則表達式匹配的數字是pattern
上我的工作:浮點在JavaScript
/^\d+((.\d+))?(,\d+((.\d+))?)*$/
它支持
1.2,30.5,13.54
25.65
但我想pattern
其中支持以下內容:
1.3,.3,4.5
.3,.4,.6
.2
1.3,5.6,.5
這裏正則表達式匹配的數字是pattern
上我的工作:浮點在JavaScript
/^\d+((.\d+))?(,\d+((.\d+))?)*$/
它支持
1.2,30.5,13.54
25.65
但我想pattern
其中支持以下內容:
1.3,.3,4.5
.3,.4,.6
.2
1.3,5.6,.5
根據您給出的例子,你需要一個小數部分,所以你可以使用
/(\d*\.\d+),?/
這WIL l匹配每個給定的例子。 如果你也想不帶小數點點匹配的數字,只需添加一個第二場比賽:
/(\d*\.\d+|\d+),?/
哦,對JavaScript,添加「G」修飾符(全局搜索),你需要添加它作爲第二個參數的正則表達式的構造函數:
re = new RegExp("(\d*\.\d+|\d+),?", "g");
例子:http://regex101.com/r/vL5aT0
好吧,我不知道是什麼目的,你都符合您的字符串。如果你只是想驗證他們,他們應該恰好看起來像你的例子,使用此:
/((\d*\.\d+|\d+),?)*(\d*\.\d+|\d+)$/
感謝Elergy指着我這一點。 順便說一句,Elergy的正則表達式也只匹配句號和逗號的無用線,像
.3,.4,.5,,,,8,.,7.,.,.,.,4.,.,.,.,.9,.,,,4.,,1,,
如果我對你的問題的理解是正確的,這種表達可以幫助你:
/^\d*[\.,]\d*(?:,\d*[\.,]\d*)*$/
如果我們輸入單個數字表達式將失敗。像'3'一樣的 。 對於所有其他輸入它的作品完美。 –
/(\d+)?\.\d+(,?)/
(\d+)?
匹配所有數字,但可選。
\d+(,?)
將所有數字與,
匹配爲可選項。
之後你想怎麼做?如果你的目標是找出有效的浮點數的一個逗號分隔的列表,你可以使用Number
構造函數,它返回NaN
如果數字是無效的(計算結果爲false
):
"1.3,5.6,a.s".split(",").every(Number)
false
"1.3,5.6,.5".split(",").every(Number)
true
個人而言,我喜歡以避免正則表達式在可能的情況下,我認爲這是相當自我記錄。split
,
上的字符串,並檢查every
值是否爲有效數字。
請注意,您也可以通過執行'/ regex/g'來添加'g'標誌。 –
不知道。總是認爲,我需要JavaScript中的RegEx的這個炸燬的構造函數。謝謝:) – WolleTD