Javascript 如何替换下划线前面的字母字符(带或不带重音)?
仅当字符单独存在时,如何替换下划线前面的字母字符(带或不带重音)?请用JS代码替换所需结果Javascript 如何替换下划线前面的字母字符(带或不带重音)?,javascript,regex,Javascript,Regex,仅当字符单独存在时,如何替换下划线前面的字母字符(带或不带重音)?请用JS代码替换所需结果 var str = "c_est son avis "; //Desired result: str = "c'est son avis "; var str = "cc_est son avis "; //Desired result: str = "cc_est son avis "; var str = "Je pense que c_est son avis "; //De
var str = "c_est son avis ";
//Desired result:
str = "c'est son avis ";
var str = "cc_est son avis ";
//Desired result:
str = "cc_est son avis ";
var str = "Je pense que c_est son avis ";
//Desired result:
str = "Je pense que c'est son avis ";
var str = "Je pense que cc_est son avis ";
//Desired result:
str = "Je pense que cc_est son avis ";
谢谢,使用正则表达式可能是最好的(我很烂)
但是,一个黑客JS的方式做这件事会像
var x = str.split('_');
for ( var i=0 ; i<x.length ; i++ ){
if (x[i].length == 1){
x[i] = x[i]+"'";
} else if (i < x.length-1){
console.log( i);
x[i] = x[i] + "_"
}
}
var y = x.toString()
var x=str.split(“"”);
对于(var i=0;i您是否尝试过任何代码
您可以使用indexOF来获取u和空格的字符位置
var n = str.indexOf("_");
var x = str.indexOf(" ");
正则表达式替换的简单用法如下:
str.replace(/(\b\w)\\ug,“$1”)
如果有一个字母(\w
)和一个下划线(\\u
),则它在单词的行间匹配(\b
),然后替换为捕获组1((\b\w)
是替换字符串中的$1
)和撇号
您需要捕获组来保留匹配模式的一部分(假设c_est
应保留为c'est
,您需要保留c
,否则将与正则表达式的其余部分一起更改)
适用于上述所有情况。试试regex101.com,它们将生成一个简单的替换代码。试试这个regex听起来像是你需要一个单词边界、一个字母匹配字符类和。
。围绕字母模式设置一个捕获组,并替换为对组+撇号的反向引用。@感谢regex sam但是“cc_est son avis”变为坏结果“cc'est son avis”。@WiktorStribiżew,您的答案的JS正则表达式代码是什么?谢谢它能工作。只需考虑在数组转换变量y=x.toString()后用“”替换“,”。