[javascript] 대문자 앞에 공백 삽입

나는 문자열이 "MySites"있습니다. My와 사이에 공백을두고 싶습니다 Sites.

jQuery 또는 JavaScript에서 어떻게 할 수 있습니까?



답변

모든 대문자 앞에 공백을 추가하고 선행 및 후행 공백을 제거 할 수 있습니다.

s = s.replace(/([A-Z])/g, ' $1').trim()


답변

그러면 소문자와 대문자가 나오는 각 항목을 찾아 그 사이에 공백을 삽입합니다.

s = s.replace(/([a-z])([A-Z])/g, '$1 $2');

2 개의 연속 된 대문자가 발생하는 특수한 경우 (예 : ThisIsATest) 아래에 추가 코드를 추가하십시오.

 s = s.replace(/([A-Z])([A-Z])/g, '$1 $2');


답변

현재 허용되는 답변에 약간의 수정을 제안 할 수 있습니까?

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당신이 원하는 가치를 가질 것입니다. 또한 regex를 사용하여 코드를 단축하려면 Javascript camelCase에서 Regular Form으로 다음 코드를 사용할 수 있습니다.

"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") );

http://jsfiddle.net/uXy64/


답변

여기에 몇 가지 답변을 기반으로 문자열을 제목 케이스로 변환하는 데 사용한 결과가 있습니다.

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/


예 :

  • “yourStringHere”-> “여기에 문자열”
  • “AnotherStringHere”-> “여기에 또 다른 문자열”
  • “someones_string”-> “Someones String”
  • “Another-String-Here”-> “Another String Here”
  • “myAWESOMEString”-> “My AWESOME String”


답변

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());