我如何更换" - "在JavaScript中?

时间:2016-08-17 05:07:30

标签: javascript

假设变量名是

var name = "Stack overflow is great";

我想将其更改为

var name = "Stack-overflow-is-great";

我做了这个

name.replace(/ /g, '-');

这是结果

var name = "Stack-overflow-is-great-";

最后有一个额外的短划线,我如何阻止最后一个短划线出现在我的字符串中?

5 个答案:

答案 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, '-'));