给定一个这样的字符串:
"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!"
当前回答
var text = `xxx df dfvdfv df
dfv`.split(/[\s,\t,\r,\n]+/).filter(x=>x).join(' ');
结果:
"xxx df dfvdfv df dfv"
其他回答
我建议
string = string.replace(/ +/g," ");
对于空格或
string = string.replace(/(\s)+/g,"$1");
还可以将多个退货转换为单个退货。
var myregexp = new RegExp(/ {2,}/g);
str = str.replace(myregexp,' ');
更健壮的:
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 = “ Tes ddas dMd WAlkman 3Dsfd ” .toLowerCase() .replace(/\b\s+/g, “ ”) .replace(/\b\w/g, s => s.toUpperCase()) .trimStart() .trimEnd(); 控制台.log(文本); 结果: Tes Ddas Dmd 随身听 3dsfd
一种更健壮的方法:如果存在初始空格和尾随空格,则该方法也会删除它们。例如:
// NOTE the possible initial and trailing spaces
var str = " The dog has a long tail, and it is RED! "
str = str.replace(/^\s+|\s+$|\s+(?=\s)/g, "");
// str -> "The dog has a long tail, and it is RED !"
你的例子没有这些空格,但它们也是一个非常常见的场景,而公认的答案只是把它们精简成单个空格,比如:“the…红色!,这不是您通常需要的。