替换所有空格,但最后除了空格

时间:2017-08-07 09:03:39

标签: javascript regex

我想替换所有空格,但不希望在字符串末尾替换空格。 例如我的问题:

  

今天是悲伤的一天

     

今天是-A-悲伤天 -

str = "today is a sad day ";
newstr = str.replace(/\s/g,"-");

6 个答案:

答案 0 :(得分:2)

您需要使用https://apacheignite.readme.io/docs/distributed-ddl从字符串的两边删除空格:

str = "today is a sad day ";
console.log(str.trim().replace(/\s/g, "-"))

答案 1 :(得分:2)

使用trim();

尝试此代码



str = "today is a sad day ";
str = str.trim();
newstr = str.replace(/\s/g,"-");
alert(newstr);




答案 2 :(得分:0)

只需使用split(" ")字符串,然后join('-')

  

注意 *:对于不需要的空格,请删除trim()功能



console.log('today is a sad day '.trim().split(" ").join('-'))




答案 3 :(得分:0)

str = "today is a sad day ";
newstr = str.replace(/\s(?!$)/g,"-");

答案 4 :(得分:0)

也许你想这样做?

str = "today is a sad day ";
toReplace = str.substring(0, str.length-1);
newstr = toReplace.replace(/\s/g,"-");
replaced = newstr + " ";
console.log(replaced);

答案 5 :(得分:0)

使用String.prototype.replace(),您可以使用function (replacement)创建新的子字符串,用于将匹配替换为给定的正则表达式。提供给此函数的参数在“Specifying a function as a parameter”中进行了描述。

您可以使用字符串的长度和当前offset来返回匹配或所需的替换'-'

代码:

var str = 'today is a sad day ';
var result = str.replace(/\s/g, function(match, offset, string) {
  return string.length - 1 !== offset ? '-' : match;
});

console.log(result);