假设变量名是
var name = "Stack overflow is great";
我想将其更改为
var name = "Stack-overflow-is-great";
我做了这个
name.replace(/ /g, '-');
这是结果
var name = "Stack-overflow-is-great-";
最后有一个额外的短划线,我如何阻止最后一个短划线出现在我的字符串中?
答案 0 :(得分:1)
我相信,你的实际输入包含尾随空格,因为你的例子工作正常。
删除带有修剪功能的尾随空格,正如我在下面的代码段中所示。
var name = "Stack overflow is great ";
var newName = name.trim().replace(/ /g, '-');
console.log(newName);
答案 1 :(得分:0)
一个快速解决方案是排除最后一个破折号。
var name = "Stack overflow is awsome "
name = name.replace(/ /g,'-');
console.log(name);
var pos = name.lastIndexOf('-');
console.log(pos);
name = name.substring(0,pos);
console.log(name);
答案 2 :(得分:0)
您必须将 replace() 功能的返回值指定给变量。 replace() 函数不会更改调用它的String对象。它只返回一个新字符串。
var name = "Stack overflow is great";
name = name.replace(/ /g, '-');
console.log(name);

答案 3 :(得分:0)
使用concat()函数,您可以在字符串的末尾添加表达式。
(function(){
var name = "Stack overflow is great";
name=name.replace(/ /g, '-');
var name=name.concat(expression);
}());
答案 4 :(得分:0)
您可以使用endWith
检查name
是否在结尾处有空格。
var name = "Stack overflow is great ";
if(name.endsWith(" ")){
name = name.substring(0, name.length -1);
}
console.log(name.replace(/ /g, '-'));