如何在javascript中使用正则表达式来匹配下面的示例字符串中的电话号码和电话号码?我在下面写的方式匹配“PHONE = 9878906756”,我需要它只匹配“9878906756”。我认为这应该是相对简单的,但我已经尝试在“PHONE =”周围添加否定字符而没有运气。我可以在自己的组中获取电话号码,但这在分配给javascript var时无效,只需要关注匹配的内容。
REGEX:
/PHONE=([^,]*)/g
DATA:
3 = {STATE =,SSN =,STREET2 =,STREET1 =, PHONE = 9878906756 , MIDDLENAME =,FIRSTNAME = Dexter,POSTALCODE =,DATEOFBIRTH = 19650802, GENDER = 0,CITY =,LASTNAME = Morgan
答案 0 :(得分:1)
你做的方式是对的,你只需要获得捕获组的值而不是整个匹配的值:
var result = str.match(/PHONE=([^,]*)/); // Or result = /PHONE=([^,]*)/.exec(str);
if (result) {
console.log(result[1]); // "9878906756"
}
在从match
返回的数组中,第一个条目是整个匹配,然后每个捕获组都有其他条目。
您也不需要g
标志。
答案 1 :(得分:0)
只需使用dataAfterRegex.substring(6)
取出前6个字符(即:PHONE=
部分)。
答案 2 :(得分: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);