在大写字母之前插入空格
我有一个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") );