这可能是一个棘手的问题。使用正则表达式,我想在括号中选择阿拉伯数字(可以是1,2或3个阿拉伯数字)以及括号本身:http://jsfiddle.net/QL4Kr/。
<span>
كهيعص ﴿١﴾
</span>
<span>
وَإِلَيْهِ تُرْجَعُونَ ﴿٢٤٥﴾
</span>
jQuery(function () {
var oldHtml = jQuery('span').html();
var newHtml = oldHtml.replace("","");
jQuery('span').html(newHtml); });
答案 0 :(得分:2)
以下是我提出的建议:
jQuery(function() {
/* Arabic digits representation in Unicode
See: http://stackoverflow.com/a/1676590/114029 */
var myregex = /[\u0660-\u0669]+/;
$('span').each(function(index) {
var text = $(this).text();
var matches = text.match(myregex);
alert(index + ': ' + $(this).text());
alert(matches);
});
});
以下是jsFiddle:http://jsfiddle.net/leniel/YyAXP/
这是修改后的版本,只保留每个<span>
中的数字:
jQuery(function() {
var myregex = /[\u0660-\u0669]+/;
$('span').each(function(index) {
var text = $(this).text();
$(this).text('');
var matches = text.match(myregex);
$(this).text(matches);
});
});
jsFiddle:http://jsfiddle.net/leniel/YyAXP/1/
为了纠正这种误解,这里有一个新版本可以完全按照您的意愿行事:
jQuery(function() {
var myregex = /[﴾\u0660-\u0669﴿]+/;
$('span').each(function(index) {
var text = $(this).text();
$(this).text('');
var matches = text.match(myregex);
var content = text.replace(myregex, '');
//alert(content);
//alert(index + ': ' + $(this).text());
//alert(matches);
var newSpan = document.createElement('span');
$(newSpan).text(matches);
$(this).text(content);
$(newSpan).prependTo($(this));
});
});
相应的jsFiddle在这里:http://jsfiddle.net/leniel/YyAXP/2/
我希望这是你最后的要求改变! : - )
var myregex = /([\u0660-\u0669]+)/g;
var parenthesis = /[﴾﴿]+/g;
var text = $("#sentences");
//alert(content);
//var matches = $(text).text().match(myregex);
//alert(text.html());
text.html(function(i, oldHTML) {
return oldHTML.replace(parenthesis, '').replace(myregex, '<span>$1</span>');
});
这是jsFiddle:http://jsfiddle.net/leniel/G4SkV/4/