如何使用正则表达式在字符串的倒数第二个索引中插入特定字符

时间:2019-12-13 16:47:44

标签: javascript regex

我想在字符串的倒数第二个索引中插入连字符-

我使用substring()在javascript中创建了一个有效的代码:

let str = "mystring";
let size = str.length;
let lastCaracter = str.substring(size - 1, size);
let newStr = str.substring(0, size - 1);

newStr = newStr + "-" + lastCaracter;

但是我认为使用正则表达式比较干净,那么如何将这段代码转换为正则表达式?

2 个答案:

答案 0 :(得分:0)

\w将捕获任何单词字符,而$选择该选择结尾处的位置

$1是对正则表达式中所选内容的反向引用,我们在此之前添加了-

console.log("myString".replace(/(\w)$/, "-$1"))

答案 1 :(得分:0)

这里有两种方法,带和不带正则表达式。我不确定我是否同意正则表达式更干净,所以我将由您自己决定。

话虽如此,用let size = str.length;来缓存长度是一个有问题的做法。只需直接访问.length,就可以避免混淆size所指的内容,并避免在变量的长度更改但忘记更新缓存的副本时出错。

const str = "mystring";
const hyphenated = `${str.slice(0, -1)}-${str.slice(-1)}`;

console.log(hyphenated);

const str = "mystring";
const hyphenated = str.replace(/(.)$/, "-$1");

console.log(hyphenated);