在javascript中对字符串执行多个if语句时,字符串不会更改
这是我的变量,我用阿拉伯语做了一些正则表达式,需要更改输入的文本字母及其颜色在javascript中对字符串执行多个if语句时,字符串不会更改,javascript,regex,Javascript,Regex,这是我的变量,我用阿拉伯语做了一些正则表达式,需要更改输入的文本字母及其颜色 let re_alef = /([\u0621-\u064A]ا+)/g; let re_ya2 = /([\u0621-\u064A]ي+)/g; let re_waw =/([\u0621-\u064A]و+)/g; let match =text.match(re); 在这个词中,如果我要求它改变颜色,这是正确的,如果我删除前一个if的代码,这是正确的 任何帮助都将不胜感激!
let re_alef = /([\u0621-\u064A]ا+)/g;
let re_ya2 = /([\u0621-\u064A]ي+)/g;
let re_waw =/([\u0621-\u064A]و+)/g;
let match =text.match(re);
在这个词中,如果我要求它改变颜色,这是正确的,如果我删除前一个if的代码,这是正确的
任何帮助都将不胜感激!谢谢大家! 你的正则表达式很好。就替换而言,只需在输入文本上按需要多次链接替换即可。不需要测试字符串长度,如果太短,正则表达式无论如何都会失败。以下是一个工作示例:
let text=';
console.log('text:'+text);
$('#text').html(text);
设re_alef=/([\u0621-\u064A]ا+)/g;
设re_ya2=/([\u0621-\u064A]ي+)/g;
设re_waw=/([\u0621-\u064A]و+)/g;
让结果=文本
.更换(更换“1美元”)
.更换(更换2,'1')
.更换(重新命名,$1');
console.log('结果:'+结果);
$('#result').html(result)代码>
.clr红色{
颜色:红色;
}
.clr绿色{
颜色:绿色;
}
.clr蓝色{
颜色:蓝色;
}
match.forEach(element => {
let el = element.split("");
if(re_alef.test(element) && element.length >3){
// console.log(element.replace(/([\u0621-\u064A]ا+)/g , '<span class="clr-red">$1</span>'));
result += element.replace(re_alef , '<span class="clr-red">$1</span>') + ' ' +
element.replace(re_ya2 , '<span class="clr-red">$1</span>') + ' ';
}
else if(re_ya2.test(element) && element.length >3){
// console.log(element.replace(/([\u0621-\u064A]ا+)/g , '<span class="clr-red">$1</span>'));
result += element.replace(re_ya2 , '<span class="clr-red">$1</span>') + ' ';
}
else if(re_waw.test(element) && element.length >3){
// console.log(element.replace(/([\u0621-\u064A]ا+)/g , '<span class="clr-red">$1</span>'));
result += element.replace(re_waw , '<span class="clr-red">$1</span>') + ' ';
}
else{
result += '<span class="clr-black">' + element + ' </span>';
}
});
العالمية