Ali*_*a41 25 html javascript jquery
我想将html内容上的每个数字转换为波斯数字而不影响页面元素.
例如:
<div style='color: #c2c2c2'>
text number 1
<span>text number 2</span>
<div>
text number 3
<b>text number 4</b>
<a href='#page2'>text number 5</a>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
转换成 :
<div style='color: #c2c2c2'>
text number ?
<span>text number ?</span>
<div>
text number ?
<b>text number ?</b>
<a href='#page2'>text number ?</a>
</div>
</div>
persian = array('?', '?', '?', '?', '?', '?', '?', '?', '?', '?');
english = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
Run Code Online (Sandbox Code Playgroud)
谢谢.
hai*_*aka 27
您可以使用此方法:(http://jsfiddle.net/A4NfG/1/)
persian={0:'?',1:'?',2:'?',3:'?',4:'?',5:'?',6:'?',7:'?',8:'?',9:'?'};
function traverse(el){
if(el.nodeType==3){
var list=el.data.match(/[0-9]/g);
if(list!=null && list.length!=0){
for(var i=0;i<list.length;i++)
el.data=el.data.replace(list[i],persian[list[i]]);
}
}
for(var i=0;i<el.childNodes.length;i++){
traverse(el.childNodes[i]);
}
}
Run Code Online (Sandbox Code Playgroud)
此示例将替换整个页面中的数字:
function walkNode(node) {
if (node.nodeType == 3) {
// Do your replacement here
node.data = node.data.replace(/\d/g,convert);
}
// Also replace text in child nodes
for (var i = 0; i < node.childNodes.length; i++) {
walkNode(node.childNodes[i]);
}
}
walkNode(document.getElementsByTagName('body')[0]);
function convert(a){
return ['?', '?', '?', '?', '?', '?', '?', '?', '?', '?'][a];
}
Run Code Online (Sandbox Code Playgroud)
如果你想用a选择一些元素selector
,你可以使用这个简单的代码(JsFiddle):
persian={0:'?',1:'?',2:'?',3:'?',4:'?',5:'?',6:'?',7:'?',8:'?',9:'?'};
$(".persian-digit").each(function(){
for(var i=0;i<=9;i++) {
var re = new RegExp(i,"g");
$(this).html($(this).html().replace(re,persian[i]));
}
});
Run Code Online (Sandbox Code Playgroud)
然后使用它:
<span class="persian-digit">This span contains persian digits (0123456789),</span>
<span>and this one contains english digits (0123456789).</span>
Run Code Online (Sandbox Code Playgroud)
我写了这段简短的代码。
\n\n// ES6\r\nconst regex = /[\xdb\xb0-\xdb\xb9]/g\r\nlet str = \'\xdb\xb0\xdb\xb1\xdb\xb2\xdb\xb3\xdb\xb5\xdb\xb4\xdb\xb8\xdb\xb9\xdb\xb0\xdb\xb7\xdb\xb8\xdb\xb9\xdb\xb0\xdb\xb1\xdb\xb2\';\r\nlet result = str.replace(regex, function (w) {\r\n return String.fromCharCode(w.charCodeAt(0) - 1728)\r\n }\r\n)\r\n\r\nconsole.log(result);
Run Code Online (Sandbox Code Playgroud)\r\n 归档时间: |
|
查看次数: |
11264 次 |
最近记录: |