2015-10-21 52 views
0

我想從我的電話號碼只有2個字符。 我使用了正則表達式匹配^\+55,這將返回以下示例。正則表達式從電話號碼提取兩位數

聯繫電話:+5546342543

結果:46342543

預期結果只有46

我不想使用子字符串的答案,而是我想從正則表達式從電話號碼中提取。

任何人都可以幫助我做到這一點。 謝謝。

+0

爲什麼用正則表達式很容易用子串解決? – Danmoreng

+1

什麼是確切的要求?在「+ 55」之後獲取任意兩個字符?或'55後面的2個數字? –

+0

在大多數情況下,字符串操作比正則表達式更快......並且你有一個簡單的字符串..你爲什麼要在子字符串上使用正則表達式? – Onilol

回答

1

您使用的模式 - ^\+55 - 匹配字符串的開頭右後文字+和兩個5秒。

46是在最初的+55之後出現的子字符串。在某些語言中,您可以使用look-behind(請參閱example)將某些文本與另一文本進行匹配。

JavaScript沒有後臺支持,所以您需要求助於capturing groups

您可以使用string#matchRegExp#exec獲得標有圓括號所捕獲文本:

var s = '+5546342543'; 
 
if ((m=/^\+55(\d{2})/.exec(s)) !== null) { 
 
    document.write(m[1]); 
 
    }

這個例子,當你沒有匹配處理的情況。

+1

謝謝stribizhev!這個對我有用 – Prabhakaran

1

只是嘗試:

'+5546342543'.match(/^\+55(\d{2})/)[1]; 
+0

@Prabhakaran如果您發現我的答案有幫助,請記住接受它。 – hsz

0

這將讓你想要什麼

"+5546342543".match(/^\+55(.*)/)[1] 
0

這可以解決問題了嗎?

phoneNumber = "+5546342543" 
phone = phoneNumber.substr(3) // returns "46342543" 
twoDigits = phoneNumber.substr(3,2) // returns "46" 

使用substr()方法所報:

substr()方法在一個字符串返回字符在通過指定的字符數指定的位置開始。

語法:str.substr(start[, length])

來源:Mozilla MDN