繁体   English   中英

使用标签创建正则表达式?

[英]Create a regular expression with the tags?

页面上有三行(000)000-0-000和+00(000)000-00-00所以我写了一个正则表达式来搜索它们/([\\+]?[0-9]+\\s)?[\\(][0-9]+[\\)]?[\\s][0-9-]+/ ,但第三个字符串包含在标签<strong>(0000)</strong><span>00-00-00</span>如何修改表达式和第三行?

function PhoneReplace(){
            var src = $('body').html().replace(/([\+]?[0-9]+\s)?[\(][0-9]+[\)]?[\s][0-9-]+/g, '098 907 23 42');
            $('body').html(src);

        };

标签无法删除,我必须更换

不要在现有的正则表达式中捕获该情况。 而是在应用电话号码表达式之前修改字符串,即删除标签。 有很多方法可以做到这一点,例如使用DOM解析器,正则表达式可能不是最好的工具。 你可以做到

var results = input.replace(/<[^>]+>/g,"").match(myPhoneNumberExpression);

删除所有标记之类的东西。

var s = '<strong>(0000)</strong><span>00-00-00</span>';
var n = '', result;
var regex = /(\+?\d+)/g;
while ((result = regex.exec(s))) { 
  n += result[1];
} 
document.writeln(n);

在这里查看此代码。

您可以使用document.body.innerTextdocument.body.textContent来获取HTML的文本内容(没有标记),然后您可以应用您的手机#正则表达式。

如果文本内容没有帮助,那么从Text JavaScript中删除HTML会解释几种(hacky)方法从HTML字符串中删除标记。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM