ひもあります"MySites"
。私は間にスペースを配置したいMy
とSites
。
jQueryまたはJavaScriptでこれを行うにはどうすればよいですか?
ひもあります"MySites"
。私は間にスペースを配置したいMy
とSites
。
jQueryまたはJavaScriptでこれを行うにはどうすればよいですか?
回答:
すべての大文字の前にスペースを追加して、先頭と末尾のスペースを削除できます
s = s.replace(/([A-Z])/g, ' $1').trim()
/([A-Z]+)/g
。+は、できるだけ多くの連続した大文字と一致することを確認します。
これは、大文字が後に続く小文字の出現を見つけ、それらの間にスペースを挿入します:
s = s.replace(/([a-z])([A-Z])/g, '$1 $2');
2つの連続した大文字が発生する特殊な場合(例:ThisIsATest)には、以下のコードを追加します。
s = s.replace(/([A-Z])([A-Z])/g, '$1 $2');
"RunThisSQLQuery"
。
現在受け入れられている回答を少し編集することをお勧めします。
function insertSpaces(string) {
string = string.replace(/([a-z])([A-Z])/g, '$1 $2');
string = string.replace(/([A-Z])([A-Z][a-z])/g, '$1 $2')
return string;
}
この意味は:
ACROText -> ACRO Text
UserNameTest -> User Name Test
db列名を処理している場合(そしていくつかのことで頭字語を使用している場合)は、どちらかというと少し便利かもしれません。
これにより、大文字の前にない各大文字の間にスペースが挿入されます。
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
あなたが望む値になります。また、正規表現を使用してコードを短くしたい場合は、Javascript camelCaseから通常のフォームに次のコードを使用できます。
"thisStringIsGood"
// insert a space before all caps
.replace(/([A-Z])/g, ' $1')
// uppercase the first character
.replace(/^./, function(str){ return str.toUpperCase(); })
正規表現で小文字を検索-大文字の境界にスペースを挿入
<div id='x'>ThisIsMySites</div>
$('#x').text( $('#x').text().replace(/([a-z])([A-Z])/g, "$1 $2") );
ここにいくつかの答えに基づいて、文字列をタイトルケースに変換するために使用したものがあります:
str = str
.replace(/(_|-)/g, ' ')
.trim()
.replace(/\w\S*/g, function(str) {
return str.charAt(0).toUpperCase() + str.substr(1)
})
.replace(/([a-z])([A-Z])/g, '$1 $2')
.replace(/([A-Z])([A-Z][a-z])/g, '$1 $2')
これがJSFiddleで、文字列をテストして、これがニーズを満たしているかどうかを確認できます。https://jsfiddle.net/thomastasa/5236dv8t/85/
例:
String#split()
大文字のアルファベット([A-Z]
)とArray#join()
、スペースを含む配列を先読みできます。
let stringCamelCase = "MySites";
let string = stringCamelCase.split(/(?=[A-Z])/).join(" ");
console.log(string)
または、文字列オブジェクト関数として:
String.prototype.cC2SC = function() {
return this.split(/(?=[A-Z])/).join(" ");
}
console.log("MyCamelCase".cC2SC());