在大写字母之前插入空格

我有一个string"MySites" 。 我想在“ My和“ Sites之间放置一个空格。

我怎样才能做到这一点在jQuery或JavaScript?

您可以在每个大写字符之前添加一个空格,并修剪前导和尾随空格

 s = s.replace(/([AZ])/g, ' $1').trim() 

这将查找每个小写字符后面跟一个大写字母,并在它们之间插入一个空格:

 s = s.replace(/([az])([AZ])/g, '$1 $2') 

我可能会build议对目前接受的答案进行轻微的修改:

 function insertSpaces(string) { string = string.replace(/([az])([AZ])/g, '$1 $2'); string = string.replace(/([AZ])([AZ][az])/g, '$1 $2') return string; } 

这意味着:

 ACROText -> ACRO Text UserNameTest -> User Name Test 

如果你正在处理数据库列名(这是一些东西使用首字母缩写),这可能会稍微有用

这应该在每个没有大写字母的大写字母之间插入一个空格。

 var myString = "MySites" var newString = ""; var wasUpper = false; for (var i = 0; i < myString.length; i++) { if (!wasUpper && myString[i] == myString.toUpperCase()[i]) { newString = newString + " "; wasUpper = true; } else { wasUpper = false; } newString = newString + myString[i]; } 

newString将会有你想要的值。 另外,如果你想用正则expression式来缩短你的代码,你可以使用下面的代码从Javascript camelCase到Regular Form

 "thisStringIsGood" // insert a space before all caps .replace(/([AZ])/g, ' $1') // uppercase the first character .replace(/^./, function(str){ return str.toUpperCase(); }) 

正则expression式来查找小写字母 – 大写的边界,然后插入一个空格

 <div id='x'>ThisIsMySites</div> $('#x').text( $('#x').text().replace(/([az])([AZ])/g, "$1 $2") ); 

http://jsfiddle.net/uXy64/