[英]How alter only the phone numbers in a div's content that aren't already links?
我需要在div
及其所有子级的textContent
中找到所有电话号码,如果尚未将它们建立为链接(例如,通过iOS Safari或创建页面内容的人),则将它们设为链接。 我不确定如何查找电话号码以及是否已经是链接。
我使用的代码仅允许在innerHTML
查找电话号码并包装在链接标记中:
div.innerHTML = div.innerHTML.replace(
/(\(\d{3}\)(-|\.)?\d{3}(-|\.)?\d{4}|\d{3}(-|\.)?\d{3}(-|\.)?\d{4}|[0-9]{10,10})/g,
"<a href=\"tel:$1\">$1</a>"
);
但是我如何确定它是否包装在链接标记中,如果是,则跳过它?
这个怎么样。
((\(\d{3}\)(-|\.)?\d{3}(-|\.)?\d{4}|\d{3}(-|\.)?\d{3}(-|\.)?\d{4}|[0-9]{10,10}))(?!["<])
这样做可以确保末尾的字符不是引号(例如href电话号码),也不是小于号(例如anchor标签的结尾)。
我解决它通过在年底收盘添加检查a
标签或引用(所以它不会改变的HREF):
(?![\s]*(\<\/a>|"|'))
整个正则表达式:
/(\(\d{3}\)(-|\.)?\d{3}(-|\.)?\d{4}|\d{3}(-|\.)?\d{3}(-|\.)?\d{4}|[0-9]{10,10})(?![\s]*(\<\/a>|"|'))/g
它还允许在电话号码和结束标签之间留有空格。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.