给定一个这样的字符串:
"The dog has a long tail, and it is RED!"
什么样的jQuery或JavaScript魔法可以用来保持空间只有一个最大空间?
目标:
"The dog has a long tail, and it is RED!"
给定一个这样的字符串:
"The dog has a long tail, and it is RED!"
什么样的jQuery或JavaScript魔法可以用来保持空间只有一个最大空间?
目标:
"The dog has a long tail, and it is RED!"
当前回答
假设你还想覆盖制表符、换行符等,只需将\s\s+替换为' ':
string = string.replace(/\s\s+/g, ' ');
如果你真的只想覆盖空格(而不是制表符,换行符等),可以这样做:
string = string.replace(/ +/g, ' ');
其他回答
var str = "The dog has a long tail, and it is RED!";
str = str.replace(/ {2,}/g,' ');
编辑: 如果你想替换所有类型的空白字符,最有效的方法是这样的:
str = str.replace(/\s{2,}/g,' ');
更健壮的:
function trim(word) { word = word.replace(/[^\x21-\x7E]+/g, ' '); // change non-printing chars to spaces return word.replace(/^\s+|\s+$/g, ''); // remove leading/trailing spaces }
var text = `xxx df dfvdfv df
dfv`.split(/[\s,\t,\r,\n]+/).filter(x=>x).join(' ');
结果:
"xxx df dfvdfv df dfv"
假设你还想覆盖制表符、换行符等,只需将\s\s+替换为' ':
string = string.replace(/\s\s+/g, ' ');
如果你真的只想覆盖空格(而不是制表符,换行符等),可以这样做:
string = string.replace(/ +/g, ' ');
这个脚本删除了单词和修饰之间的任何空白(多个空格,制表符,返回值等):
// Trims & replaces any wihtespacing to single space between words
String.prototype.clearExtraSpace = function(){
var _trimLeft = /^\s+/,
_trimRight = /\s+$/,
_multiple = /\s+/g;
return this.replace(_trimLeft, '').replace(_trimRight, '').replace(_multiple, ' ');
};