我想寫一個正則表達式的國家代碼,應限制爲最多四個字符,只允許符號是+號。當使用+時,+必須在開頭,並且它應該至少有一個數字。正則表達式的國家或地區代碼
有效的情況下
+1
1
+12
12
+123
1234
無效的情況下
+
+1234
12345
1+
12+
<empty>
etc.
,我現在所擁有的表達。
/(\+\d{1,3})/
它可以更優雅嗎?
- 謝謝您提前!
我想寫一個正則表達式的國家代碼,應限制爲最多四個字符,只允許符號是+號。當使用+時,+必須在開頭,並且它應該至少有一個數字。正則表達式的國家或地區代碼
有效的情況下
+1
1
+12
12
+123
1234
無效的情況下
+
+1234
12345
1+
12+
<empty>
etc.
,我現在所擁有的表達。
/(\+\d{1,3})/
它可以更優雅嗎?
- 謝謝您提前!
這應該工作。我用
/^(\+?\d{1,3}|\d{1,4})$/
編輯:
的// GM標誌分別全球和多。如果您有一個字符串可以有多個地方來匹配國家/地區代碼,或者您的字符串中有多行,則需要這些字符。如果你的字符串不僅僅是一個可能的國家代碼,你需要在正則表達式的開始和結尾處去掉^
和$
。要使用正則表達式,你需要這樣的事情:
var regex = /^(\+?\d{1,3}|\d{1,4})$/gm
var str = "+123"
var match = str.match(regex);
//match is an array, with one result in this case. So match[0] == "+123"
您需要對案例進行區分。無論有或沒有前導的加號:
(\+\d{1-3})|(\d{1,4})
無論你是想錨表達行限制(^
和$
)或檢查開頭或結尾空格或類似顯然取決於你的情況。
謝謝你伸出尼克。 –
您能否讓我知道/ gm標誌是什麼?我如何適應我的實際代碼? –
@VamshiGudipati我在我的編輯中解釋過它。這取決於你的字符串是什麼樣子,但我認爲我總體解釋得很好。查看[this](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/match),獲取正則表達式的各種匹配方法。 –