我正在開發一個音樂項目。輸入只包含字母和數字。正則表達式是我們設定的限制條件之一。正則表達式爲數字1-25
所以,這讓我的數字在26以下,但如果像27這樣的數字顯示出來,它仍然拿起2和7.我怎麼能排除所有數字26和以上?謝謝!
/[0-2][0-5]|[1-9]/g
我要補充...這是一個大的字符串前和後的數字字母和空格的一部分。所以我必須識別字符串中的數字並將其拉出。只使用string.prototype.match()和正則表達式。很長的故事。 THX
我正在開發一個音樂項目。輸入只包含字母和數字。正則表達式是我們設定的限制條件之一。正則表達式爲數字1-25
所以,這讓我的數字在26以下,但如果像27這樣的數字顯示出來,它仍然拿起2和7.我怎麼能排除所有數字26和以上?謝謝!
/[0-2][0-5]|[1-9]/g
我要補充...這是一個大的字符串前和後的數字字母和空格的一部分。所以我必須識別字符串中的數字並將其拉出。只使用string.prototype.match()和正則表達式。很長的故事。 THX
你[0-2][0-5]|[1-9]
正則表達式,接着用0-5
數字或數字1-9
的字符串中的任何地方一個0-2
位的任何序列匹配。
以匹配1
個人值,直到25
,你可以使用
/\b(0?[1-9]|1[0-9]|2[0-5])\b/g
圖案的詳細資料:
\b
- 領先的單詞邊界(0?[1-9]|1[0-9]|2[0-5])
- 要麼替代的:
0?[1-9]
- 一個可選的領先0
隨後從1
一個數字,9
1[0-9]
- 10
直到19
2[0-5]
- 20
直到25
\b
- 尾隨邊界啊......所以你現在... 0-5,10-15,20-25或0-9的
你有正確的想法,這個想法只是錯誤的應用程序。
([01]?[0-9]|2[0-5])
// should omit those pesky one-offs you're seeing as mentioned in the comments.
^([01]?[0-9]|2[0-5])$
\b([01]?[0-9]|2[0-5])\b
// if you also want to exclude 0...
^([1-9]|1[0-9]|2[0-5])$
\b([1-9]|1[0-9]|2[0-5])\b
象徵性地表示0到19之間的任何數字(w /或w/o預置0)或20-25。
我建議沿東西線(坐或刪除一些我添加的元素,因爲我不知道您的具體要求)
/^(([ 01]?[1-9])|2[0-5])$/
^...$
匹配整個輸入,以避免匹配一個兩位數輸入?
以允許一位數輸入|
以允許兩個的情況「第一位數字爲0或1」的個位數和「第一位= 2」但總而言之,比正則表達式更好的工具來完成這項工作,比如解析數字並做一個簡單的比較。
^\d$|^1\d$|^2[0-6]$
將匹配0-26。
但是,這不是你應該用正則表達式解決的問題。更好的方法是測試與運營商的數量像<
或<=
:
myNum < 27 // is 0-26
我想你不能這樣做,但會更容易使用它的數值而不是簡單的文本。無論如何讀這個http://stackoverflow.com/questions/8592488/regex-how-can-i-match-all-numbers-greater-than-49 – exoddus
這似乎並不適用於所有選項。不幸的是需要使用正則表達式。不是我的選擇。感謝 – Fedreg
輸入數據結構如何?數字是否由特殊字符分隔(例如,數字之間是否至少有一個空格)? – muton