如果角色是独自一人,我怎样才能替换下划线前面的任何字母字符(有或没有重音)?请用JS代码替换Desired result。
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 ";
谢谢,
答案 0 :(得分:1)
正则表达式替换的简单用法是这样的:
str.replace(/(\b\w)\_/g,"$1'")
如果一个字母(\b
)和下划线,则匹配单词(\w
) (\_
),然后替换为捕获组1 (替换字符串中的(\b\w)
为$1
)和撇号。
您需要捕获组来保留匹配模式的一部分(假设c_est
应保留为c'est
,您需要保留c
,否则将与正则表达式的其余部分一起更改。
适用于上述所有情况。
答案 1 :(得分:0)
可能最好使用正则表达式(我很糟糕) 但是一种hacky 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()
y将是格式化结果
-Edit-修复了评论中突出显示的错误。
答案 2 :(得分:0)
您尝试过任何代码吗?
您可以使用indexOF获取_和空格
的char位置var n = str.indexOf("_");
var x = str.indexOf(" ");