我需要一个正则表达式从字符串中提取一个丹麦电话号码。交给我吧
var phrase = "Text text text 11 22 33 44 text text.";
phrase = phrase.replace(/^((\(?\+45\)?)?)(\s?\d{2}\s?\d{2}\s?\d{2}\s?\d{2})$/, "replace phone number");
alert(phrase);
我找到了这个链接,但它不起作用:http://www.dbsoftlab.com/etl-tools/regular-expressions/is-danish-phone-number.html
3条答案
按热度按时间pcww981p1#
在您尝试使用的表达式中,只有当电话号码是字符串中唯一的内容时,它才会匹配,因为^匹配字符串的开头,而$匹配字符串的结尾。
我相信这是一个简单得多的正则表达式:
因此,您可以说textStr.replace(/([0-9]{2}){3}[0-9]{2}/g,'new string')。
lokaqttq2#
问题是
^
和$
,它们分别匹配字符串的开头和结尾。因为数字在字符串的中间,所以它们不匹配。删除它们,它会起作用:ycggw6v23#
我会说:
这将维护前一个正则表达式具有的可选国家代码。我在这里使用非捕获组以提高效率。
https://developer.mozilla.org/en-US/docs/JavaScript/Guide/Regular_Expressions#Using_Special_Characters