我使用了trim函数来删除句子开头和结尾的空格。如果句子中的单词之间有很多空格,是否有任何方法可以修剪?
例如
"abc def. fds sdff."
答案 0 :(得分:32)
试
"abc def. fds sdff."
.replace(/\s+/g,' ')
或
"abc def. fds sdff."
.split(/\s+/)
.join(' ');
或使用此allTrim
字符串扩展名
String.prototype.allTrim = String.prototype.allTrim ||
function(){
return this.replace(/\s+/g,' ')
.replace(/^\s+|\s+$/,'');
};
//usage:
alert(' too much whitespace here right? '.allTrim());
//=> "too much whitespace here right?"
答案 1 :(得分:25)
var str = 'asdads adasd adsd';
str = str.replace(/\s+/g, ' ');
答案 2 :(得分:3)
您可以使用此Javascript将多个连续空格修剪为仅一个空格:
var str = "abc def. fds sdff.";
str = str.replace(/\s+/g, " ");
如果您的意思不是连续多个空格,请在您的问题中澄清您的意思。
答案 3 :(得分:3)
我认为您正在寻找的是JavaScript的string.replace()方法。
如果您想删除所有空格,请使用:
"abc def. fds sdff.".replace(/\s/g, '');
Returns: "abcdef.fdssdff."
如果您只想删除双倍空格,请使用:
"abc def. fds sdff.".replace(/\s\s/g, ' ');
Returns: "abc def. fds sdff."
如果您希望在一段时间后留下空格,请使用:
"abc def. fds sdff.".replace(/[^.]\s/g, '')
Returns: "abcdef. fdssdff."
答案 4 :(得分:1)
请参阅以下代码部分,该部分在javascript中使用rejex删除重复的空格。
function trim(value) {
var temp = value;
var obj = /^(\s*)([\W\w]*)(\b\s*$)/;
if (obj.test(temp)) { temp = temp.replace(obj, '$2'); }
var obj = / +/g;
temp = temp.replace(obj, " ");
if (temp == " ") { temp = ""; }
return temp;
}
答案 5 :(得分:1)
value.replace(" ", " ");
这应该可以解决问题,只需将2个空格替换为1,直到只有1个空格。