我想将特定数据属性(数据编号)设置为tel.Ex.
<p data-number="(+91) 000-000-00000">(+91) 000-000-00000</p>
<p data-number="(111) 111-1111">(111) 111-1111</p>
<div data-number="(+91) 111-111-11111">(+91) 111-111-11111</div>
<div data-number="(111) 111-1111">(111) 111-1111</div>
我想只将那些与我的正则表达式匹配的数字转换为<a href="tel:"></a>
。我试过这样的
var n = $("[data-number]").length;
var array = $("[data-number]");
var re = /^\(\+\d{2}\)\s|\+\d{2}-|\d{3,4}[-.]?\d{3}[-.]?(\d{4,5})\b$/;
var result;
for (var i = 0; i < n; i++) {
Tel_Number = array.eq(i).attr('data-number');
if (Tel_Number.match(re)) {
alert(Tel_Number);
}
}
我在alert中获得与正则表达式匹配的数字。匹配的数字我想将它们转换为<a href="tel:></a>
。我有一个解决方案,将所有数据转换为tel,如下所示:
$("p[data-number]").each(function() {
var $a = $("<a />").attr("href", "tel:" + $(this).data("number"));
$a.html($(this).html());
$(this).html($a);
});
请建议我如何转换与<a href="tel:></a>
答案 0 :(得分:1)
我刚修改了一些代码并使其正常工作,见下文 -
var re = /^\(\+\d{2}\)\s|\+\d{2}-|\d{3,4}[-.]?\d{3}[-.]?(\d{4,5})\b$/;
$("[data-number]").each(function () {
var Tel_Number = $(this).attr('data-number');
if (Tel_Number.match(re)) {
var $a = $("<a />").attr("href", "tel:" + $(this).data("number"));
$a.html($(this).html());
$(this).html($a);
}
});
工作小提琴 - http://jsfiddle.net/sh4mkrbg/1/