我试图制作一个识别挪威语音的脚本,基本上格式是基于8位数字,但也应该允许5位数字以及110,112,113(这是挪威的紧急号码)。脚本beneeth非常完美,但也会影响与exeption匹配的url和id。我已经尝试过多种方式使这只影响内部标签(不正确标签本身)。
var regex = /((\d){5})|(110)|(113)|(112)|(\d{2}(?: ?\d){6})/g; //\>+.
text = $("article:first").html().replace(regex, "<a href=\"tel:\" class='phoneme'>$&</a>");
$("article:first").html(text);
有没有人知道如何做到这一点?
更新:
我将更多地指出我的问题:该功能的要点是用链接替换文本中给出的所有语音。我使用HTML的原因是为了保留文章标签中的html,尽管我不希望标签内的属性受到影响。
小提琴作为例子
答案 0 :(得分:0)
检查以下脚本。您可以更改.mask
试试这个:
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script type="text/javascript" src="http://cdn.jsdelivr.net/jquery.maskedinput/1.3.1/jquery.maskedinput.js"></script>
<script>
jQuery(function($)
{
$.mask.definitions['~']='[+-]';
$('#W2TxtCell').mask('(999)(99999)');
});
</script>
<input type="" id="W2TxtCell"/>
答案 1 :(得分:0)
我通过创建以下功能解决了这个问题。不是我想要的,但它的效果就像一个发光:)
var runPhones = function(elm) {
var regex = /((\d){5})|(110)|(113)|(112)|(\d{2}(?: ?\d){6})/g;
$("article:first *").contents().filter(function(i,e){ // Filter away all tags
if(e.nodeType !== 1){
e.nodeValue = e.nodeValue.replace(regex, "TEL$&TELEND")// Creating markup in text
}
});
var text = $("article:first").html().replace(/TELEND/g,"</a>"); // Changeing markup to HTML
text = text.replace(/TEL/g,"<a href='tel:' class='phoneme'>") // Changing markup to HTML
$("article:first").html(text);
}
runPhones();
我可能已经完成了这个无关紧要的复杂,但我确实找到了在nodeValue.replace中直接解析HTML的方法。
SE小提琴演示