gpt4 book ai didi

javascript - 简单的 Javascript 查找和替换

转载 作者:行者123 更新时间:2023-11-28 02:49:35 26 4
gpt4 key购买 nike

我正在开发一个项目,需要将网站上的任何电话号码替换为如下格式的号码:

<span id="special-id">555-666-7777</span>

使用正则表达式并不是真正必要的,因为我知道我需要替换的值。此外,某些数字的格式可能有所不同(带括号或小数)。

我相当确定我可以弄清楚如何使用 Jquery 做到这一点,但是对于这个项目,我需要使用常规 Javascript。

简而言之,我想定义该号码的 1 个或多个版本(555-666-7777(555) 666-7777>etc ),并将它们替换为我在 SPAN 标记中连字符连接的号码版本,并带有 ID。

最佳答案

您是否正在更新目录结构中的一堆文件(例如 .html)?如果是这样,grep 将是您的 friend ,特别是如果您可以识别所有电话号码排列。然后使用正则表达式和 grep 来查找和替换所有这些。这是一个部分解决方案:

grep -l -R --perl-regexp "\b((\d{3})\s*|\d{3}-)\d{3}-\d{4}\b"* > 输出.txt

窃取自:http://sites.google.com/site/steveyegge2/five-essential-phone-screen-questions

JavaScript 更新

使用Regular Expression Backreferences in JavaScript 。基本上,您定义一个内部具有“子匹配”的正则表达式,其中替换值引用回这些匹配。在您的情况下,子匹配数字,然后替换为对这些数字的反向引用加上您的分隔符,并用 <span/> 括起来标签。

示例

请注意正则表达式末尾的“g”标志,使其成为全局表达式。

<html>

<head>

<script type="text/javascript">
function cleanPhoneNumbers() {
document.body.innerHTML =
document.body.innerHTML.replace(
/\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})/g,
"<span>$1-$2-$3</span>"
);
}
</script>

</head>

<body onload="cleanPhoneNumbers();">
<div>There's a bunch of text here and some other <b>tags</b> and
stuff <i>to mix it up.</i></div>
<p>Perhaps <i>dial</i> (555) 666-7777</p>
</body>

</html>

关于javascript - 简单的 Javascript 查找和替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4072565/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com