2014-08-27 46 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); 
相关问题