给定一个这样的字符串:
"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!"
当前回答
//将多个空格替换为一个空格
String replacedDisplayName = displayName.replaceAll("\\s{2,}", " ");
其他回答
假设你还想覆盖制表符、换行符等,只需将\s\s+替换为' ':
string = string.replace(/\s\s+/g, ' ');
如果你真的只想覆盖空格(而不是制表符,换行符等),可以这样做:
string = string.replace(/ +/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 }
let nameCorrection = function (str) {
let strPerfect = str.replace(/\s+/g, " ").trim();
let strSmall = strPerfect.toLowerCase();
let arrSmall = strSmall.split(" ");
let arrCapital = [];
for (let x of arrSmall.values()) {
arrCapital.push(x[0].toUpperCase() + x.slice(1));
}
let result = arrCapital.join(" ");
console.log(result);
};
nameCorrection("Pradeep kumar dHital");
一种更健壮的方法:如果存在初始空格和尾随空格,则该方法也会删除它们。例如:
// 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…红色!,这不是您通常需要的。
还有一种可能:
str.replace( /\s+/g, ' ' )