javascript 中是否有一种简单的方法来替换给定字符串中最后一次出现的“_”(下划线)?
替换字符串中最后一次出现的字符
IT技术
javascript
2021-02-22 15:51:46
6个回答
你不需要 jQuery,只需要一个正则表达式。
这将删除最后一个下划线:
var str = 'a_b_c';
console.log( str.replace(/_([^_]*)$/, '$1') ) //a_bc
这将用变量的内容替换它replacement
:
var str = 'a_b_c',
replacement = '!';
console.log( str.replace(/_([^_]*)$/, replacement + '$1') ) //a_b!c
假设字符串中存在要替换的字符,则不需要 jQuery 或正则表达式
替换字符串中的最后一个字符
str = str.substring(0,str.length-2)+otherchar
替换字符串中的最后一个下划线
var pos = str.lastIndexOf('_');
str = str.substring(0,pos) + otherchar + str.substring(pos+1)
或使用其他答案中的正则表达式之一
var str1 = "Replace the full stop with a questionmark."
var str2 = "Replace last _ with another char other than the underscore _ near the end"
// Replace last char in a string
console.log(
str1.substring(0,str1.length-2)+"?"
)
// alternative syntax
console.log(
str1.slice(0,-1)+"?"
)
// Replace last underscore in a string
var pos = str2.lastIndexOf('_'), otherchar = "|";
console.log(
str2.substring(0,pos) + otherchar + str2.substring(pos+1)
)
// alternative syntax
console.log(
str2.slice(0,pos) + otherchar + str2.slice(pos+1)
)
那这个呢?
function replaceLast(x, y, z){
var a = x.split("");
a[x.lastIndexOf(y)] = z;
return a.join("");
}
replaceLast("Hello world!", "l", "x"); // Hello worxd!
把事情简单化
var someString = "a_b_c";
var newCharacter = "+";
var newString = someString.substring(0, someString.lastIndexOf('_')) + newCharacter + someString.substring(someString.lastIndexOf('_')+1);
这样做的另一种超级清晰的方法如下:
let modifiedString = originalString .split('').reverse().join('') .replace('_', '') .split('').reverse().join('')
其它你可能感兴趣的问题