我想從我的電話號碼只有2個字符。 我使用了正則表達式匹配^\+55
,這將返回以下示例。正則表達式從電話號碼提取兩位數
聯繫電話:+5546342543
結果:46342543
預期結果只有46
。
我不想使用子字符串的答案,而是我想從正則表達式從電話號碼中提取。
任何人都可以幫助我做到這一點。 謝謝。
我想從我的電話號碼只有2個字符。 我使用了正則表達式匹配^\+55
,這將返回以下示例。正則表達式從電話號碼提取兩位數
聯繫電話:+5546342543
結果:46342543
預期結果只有46
。
我不想使用子字符串的答案,而是我想從正則表達式從電話號碼中提取。
任何人都可以幫助我做到這一點。 謝謝。
您使用的模式 - ^\+55
- 匹配字符串的開頭右後文字+
和兩個5
秒。
46
是在最初的+55
之後出現的子字符串。在某些語言中,您可以使用look-behind(請參閱example)將某些文本與另一文本進行匹配。
JavaScript沒有後臺支持,所以您需要求助於capturing groups。
您可以使用string#match
或RegExp#exec
獲得標有圓括號所捕獲文本:
var s = '+5546342543';
if ((m=/^\+55(\d{2})/.exec(s)) !== null) {
document.write(m[1]);
}
這個例子,當你沒有匹配處理的情況。
謝謝stribizhev!這個對我有用 – Prabhakaran
這將讓你想要什麼
"+5546342543".match(/^\+55(.*)/)[1]
這可以解決問題了嗎?
phoneNumber = "+5546342543"
phone = phoneNumber.substr(3) // returns "46342543"
twoDigits = phoneNumber.substr(3,2) // returns "46"
使用substr()
方法所報:
的
substr()
方法在一個字符串返回字符在通過指定的字符數指定的位置開始。
語法:str.substr(start[, length])
來源:Mozilla MDN
爲什麼用正則表達式很容易用子串解決? – Danmoreng
什麼是確切的要求?在「+ 55」之後獲取任意兩個字符?或'55後面的2個數字? –
在大多數情況下,字符串操作比正則表達式更快......並且你有一個簡單的字符串..你爲什麼要在子字符串上使用正則表達式? – Onilol