2017-10-11 60 views
0

如何操作字符串以添加锚点以代替电话号码?以纯文本替换电话号码,并使用Javascript中的锚点

更多详细..

我输入一个像这样的字符串:

"Something went wrong. Please call us on 01 123 456 789 or 01 987 654 321."

我想作为输出:

"Something went wrong. Please call us on <a href="tel:01123456789">01 123 456 789</a> or <a href="tel:01987654321">01 987654321</a>."

(注意,有可能是任何数量的电话号码,并且实际内容中的数字之间的空格可以存在或不存在)

我该如何在Javascript中实现?

+0

应用的正则表达式与取代然后准备动态HTML,并将它附加到DOM。 –

+0

什么是正则表达式? –

+0

'(\ b [0-9] + [0-9] +)'这样的事我猜 –

回答

1

你可以简单地用Regex做到这一点。

const input = "Something went wrong. Please call us on 01 123 456 789 or 01 987 654 321." 
 
    
 
console.log(input.replace(/(\d\s*){5,}\d/g, x=>"<a href='tel:" + x.replace(/\s/g,"") + "'>" + x.trim() + "</a>"));

+0

这似乎工作得很好,除了一些空格。 输出是''出了点问题,请给我们打电话01 123 456 78901 987 654 321“' –

+1

我会去'/(\ d \ s *){6,} /',这样可以确保至少有6位数字。 '/ [\ d \ s *] {6,}'也会匹配长度大于等于6的空字符串。 –

+0

解决方案:'.replace(/(\ d \ s *){6,}/g,x =>“" + x.trim() + "”);' –