2014-08-27 48 views
0

如何在JavaScript中使用正則表達式來匹配電話號碼並僅匹配下面示例字符串中的電話號碼?我將它寫在下面的方式匹配「PHONE = 9878906756」,我需要它匹配「9878906756」。我認爲這應該是相對簡單的,但我已經嘗試過在「PHONE =」周圍放置字符而沒有運氣。我可以在自己的組中獲得電話號碼,但這對分配給javascript var時無濟於事,它只關心匹配的內容。在javascript中使用正則表達式在兩個其他字符串之間匹配字符串

REGEX:

/PHONE=([^,]*)/g 

DATA:

3 = {STATE =,SSN =,STREET2 =,STREET1 =,PHONE = 9878906756, 中間名=,FIRSTNAME =德克斯特, POSTALCODE =,= DATEOFBIRTH 19650802, 性別= 0,CITY =,姓氏=摩根

回答

1

這就是你」再這樣做是正確的,你只需要得到捕獲組的值,而不是整場比賽的價值:

var result = str.match(/PHONE=([^,]*)/); // Or result = /PHONE=([^,]*)/.exec(str); 
if (result) { 
    console.log(result[1]); // "9878906756" 
} 

在你從match回陣列中,第一項是整場比賽,然後每個捕獲組都有其他條目。您也不需要g標誌。

+1

感謝T.J.,偉大工程!我不知道如何使用[1]獲取數組/組中的第二個值。 – mirthNewb 2014-08-28 16:17:57

+0

@mirthNewb:不用擔心,很高興幫助。 :-) – 2014-08-28 16:28:21

+0

@mirthNewb:如果這*回答了你的問題,那麼SO的工作方式就是通過點擊旁邊的複選標記來「接受」答案。但只有當它確實如此。詳細信息:http://stackoverflow.com/help/someone-answers – 2014-08-28 16:29:02

0

只需使用dataAfterRegex.substring(6)即可取出前6個字符(即:PHONE=部分)。

0

嘗試

var str = "3={STATE=, SSN=, STREET2=, STREET1=, PHONE=9878906756, MIDDLENAME=, FIRSTNAME=Dexter, POSTALCODE=, DATEOFBIRTH=19650802, GENDER=0, CITY=, LASTNAME=Morgan"; 

var ph = str.match(/PHONE\=\d+/)[0].slice(-10); 

console.log(ph); 
相關問題