반응형
Javascript / jQuery : 낙타 문자 문자열을 분할하고 공백 대신 하이픈 추가
나는 이것이 정규식의 다중 부분 상황이라고 상상할 수 있지만 대문자에서 낙타 문자열을 소문자로 바꾸고 각 새 문자열 사이에 하이픈을 추가하는 방법은 무엇입니까?
예를 들면 :
thisString
될 것입니다 :
이 문자열
다음과 같이 시도하십시오.
var myStr = 'thisString';
myStr = myStr.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
답변이 늦었지만이 솔루션은 단일 문자가 카멜 케이스 인 경우에 효과적입니다.
'thisIsATest'.replace(/([a-zA-Z])(?=[A-Z])/g, '$1-').toLowerCase(); // this-is-a-test
다음을 시도하십시오.
var token = document.getElementsByTagName('strong')[0].innerHTML,
replaced = token.replace(/[a-z][A-Z]/g, function(str, offset) {
return str[0] + '-' + str[1].toLowerCase();
});
alert(replaced);
예 -http : //jsfiddle.net/7DV6A/2/
문자열 replace함수에 대한 문서 :
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/String/replace
String.prototype.camelCaseToDashed = function(){
return this.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
}
// Usage
"SomeVariable".camelCaseToDashed();
이 모든 솔루션이 왜 그렇게 복잡한 지 모르겠지만 이것이 충분하다는 것을 알았습니다.
function camelCaseToDash(input){
// replace Capital letter with the letter + a dash: '-', then lowercase everything.
return input.replace(/([A-Z])/g, '-$1').toLowerCase();
}
//or, using a callback function, directly lowercasing.
function camelCaseToDashCallback(input){
//replace capital letter with lowercase variant + a dash '-'.
return input.replace(/([A-Z])/g, (x)=> "-"+ x.toLowerCase());
}
일반적으로 옵션 1이 더 빠릅니다 : https://jsfiddle.net/4557z/17/
반응형
'Program Club' 카테고리의 다른 글
| “폐쇄는 가난한 사람의 물건이고 그 반대의 경우도 마찬가지입니다.”-이것은 무엇을 의미합니까? (0) | 2020.12.14 |
|---|---|
| 터미널을 사용하여 파일 이름을 일괄 적으로 변경하려면 어떻게해야합니까? (0) | 2020.12.14 |
| setOnCancelListener 및 setOnDismissListener는 뒤로 버튼을 누르거나 외부를 터치하는 경우 AlertDialog에 대해 호출되지 않습니다. (0) | 2020.12.14 |
| 원격 저장소에 변경 사항을 푸시 할 때이 Git 경고 메시지는 무엇입니까? (0) | 2020.12.14 |
| LPARAM 및 WPARAM의 정의는 무엇입니까? (0) | 2020.12.14 |