Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 替换所有空格,但结尾处的空格除外_Javascript_Regex - Fatal编程技术网

Javascript 替换所有空格,但结尾处的空格除外

Javascript 替换所有空格,但结尾处的空格除外,javascript,regex,Javascript,Regex,我想替换所有空格,但不想替换字符串末尾的空格。 例如,我的问题: 今天是悲伤的一天 今天是悲伤的一天- 您需要使用删除字符串两侧的空白: str=“今天是悲伤的一天”; log(str.trim().replace(/\s/g,“-”)使用trim()尝试此代码 str=“今天是悲伤的一天”; str=str.trim(); newstr=str.replace(/\s/g,“-”); 警报(newstr)只需使用split(“”)带空格的字符串,然后join('-') 注意*:对于不需要的

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

今天是悲伤的一天

今天是悲伤的一天-

您需要使用删除字符串两侧的空白:

str=“今天是悲伤的一天”;

log(str.trim().replace(/\s/g,“-”)
使用
trim()尝试此代码

str=“今天是悲伤的一天”;
str=str.trim();
newstr=str.replace(/\s/g,“-”);
警报(newstr)
只需使用
split(“”)
带空格的字符串,然后
join('-')

注意*:对于不需要的空间,请删除该功能


console.log('今天是悲伤的一天'.trim().split('').join('-')
也许你想这样做

str=“今天是悲伤的一天”;
toReplace=str.substring(0,str.length-1);
newstr=toReplace.replace(/\s/g,“-”);
已替换=newstr+“”;
控制台日志(已替换)使用,您可以使用
函数(替换)
创建新的子字符串,用于替换与给定正则表达式的匹配项。提供给此函数的参数在“”中描述

然后,您可以使用字符串的长度和当前的
偏移量来返回匹配项或所需的替换项
'-'

代码:

var str='今天是悲伤的一天';
var result=str.replace(/\s/g,函数(匹配,偏移,字符串){
return string.length-1!==偏移量?'-':匹配;
});

控制台日志(结果)首先使用修剪来删除空格。所以您想保留字符串结尾的空格吗?因为您不是很清楚,所以您想保留尾随空格吗?请编辑您的问题以显示您的确切要求。问题中的示例和文本不匹配。根据你的问题,结果应该是“今天是悲伤的一天”只是一个警告,如果这是一项要求,IE8中不可用。
不希望替换字符串结尾的空格
,因此我认为
trim
正好相反。OP示例在
天之后有一个空格
今天是悲伤的一天
您最好解释您的解决方案,而不是简单地发布一些代码。也许值得一读。
str = "today is a sad day ";
newstr = str.replace(/\s/g,"-");
str = "today is a sad day ";
newstr = str.replace(/\s(?!$)/g,"-");