[英]Match a string between two other strings with regex in javascript
如何在javascript中使用正则表达式来匹配电话号码,并且仅匹配下面示例字符串中的电话号码? 我在下面编写的方式匹配“ PHONE = 9878906756”,我只需要它匹配“ 9878906756”。 我认为这应该相对简单,但是我尝试在“ PHONE =”周围加上否定字符,但是没有运气。 我可以在自己的组中获取电话号码,但这在分配给javascript var时无济于事,而javascript var只关心匹配的内容。
正则表达式:
/PHONE=([^,]*)/g
数据:
3 = {STATE =,SSN =,STREET2 =,STREET1 =, PHONE = 9878906756 ,MIDDLENAME =,FIRSTNAME = Dexter,POSTALCODE =,DATEOFBIRTH = 19650802,GENDER = 0,CITY =,LASTNAME = Morgan
正确的做法是,您只需要获取捕获组的值,而不是整个匹配的值即可:
var result = str.match(/PHONE=([^,]*)/); // Or result = /PHONE=([^,]*)/.exec(str);
if (result) {
console.log(result[1]); // "9878906756"
}
在数组中,您从match
返回,第一个条目是整个匹配,然后每个捕获组都有其他条目。
您也不需要g
标志。
只需使用dataAfterRegex.substring(6)
取出前6个字符(即PHONE=
部分)。
尝试
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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.