여분의 공백이있는 문자열이 있습니다. 각 공백이 하나 이상있을 때마다 하나만 있으면됩니다.
누군가? Google 검색을 시도했지만 아무것도 효과가 없었습니다.
감사
여분의 공백이있는 문자열이 있습니다. 각 공백이 하나 이상있을 때마다 하나만 있으면됩니다.
누군가? Google 검색을 시도했지만 아무것도 효과가 없었습니다.
감사
답변:
이 같은:
var s = " a b c ";
console.log(
s.replace(/\s+/g, ' ')
)
다음과 같이 문자열을 기능 보강하여 메소드로 이러한 동작을 구현할 수 있습니다.
String.prototype.killWhiteSpace = function() {
return this.replace(/\s/g, '');
};
String.prototype.reduceWhiteSpace = function() {
return this.replace(/\s+/g, ' ');
};
이제 다음과 같은 우아한 형식을 사용하여 원하는 문자열을 생성 할 수 있습니다.
"Get rid of my whitespaces.".killWhiteSpace();
"Get rid of my extra whitespaces".reduceWhiteSpace();
replace 함수와 함께 정규 표현식을 사용하면 트릭이 수행됩니다.
string.replace(/\s/g, "")
var s = ' a b word word. word, wordword word ';
// with ES5:
s = s.split(' ').filter(function(n){ return n != '' }).join(' ');
console.log(s); // "a b word word. word, wordword word"
// or ES6:
s = s.split(' ').filter(n => n).join(' ');
console.log(s); // "a b word word. word, wordword word"
문자열을 공백으로 나누고 배열에서 빈 배열 항목을 모두 제거하고 (하나 이상의 공백 인 항목) 공백 사이에 하나의 공백이있는 모든 단어를 문자열로 다시 결합합니다.
모든 공백을 제거하지 않고 문자열의 시작 및 / 또는 끝에서 공백을 제거하려고한다고 가정합니다 .
이 경우 다음과 같은 정규식이 필요합니다.
mystring = mystring.replace(/(^\s+|\s+$)/g,' ');
문자열의 시작 또는 끝에서 모든 공백이 제거됩니다. 끝에서 공백 만 자르고 싶다면 정규 표현식이 다음과 같이 보입니다.
mystring = mystring.replace(/\s+$/g,' ');
희망이 도움이됩니다.
''
대신 해야합니다 ' '
.
나는 주제에 대해 괴사를해서는 안된다는 것을 알고 있지만 질문의 세부 사항을 감안할 때 나는 보통 그것을 의미로 확장합니다.
이를 위해 다음과 같은 코드를 사용합니다 (첫 번째 정규 표현식의 괄호는 코드를 좀 더 읽기 쉽게하기 위해 있습니다 ... 정규 표현식은 익숙하지 않으면 고통 스럽습니다).
s = s.replace(/^(\s*)|(\s*)$/g, '').replace(/\s+/g, ' ');
이것이 작동하는 이유는 String-object의 메소드가 다른 메소드를 호출 할 수있는 문자열 객체를 반환하기 때문입니다 (jQuery 및 다른 라이브러리와 마찬가지로). 단일 객체에서 여러 메소드를 연속적으로 실행하려는 경우 훨씬 간단한 코딩 방법입니다.
var x = "테스트 테스트 테스트".split ( "") .join ( ""); 경보 (x);
이름에 공백을 두도록 사용자를 제한하려면 if 문을 작성하고 조건을 지정하십시오. 내가 한 것처럼 :
$j('#fragment_key').bind({
keypress: function(e){
var key = e.keyCode;
var character = String.fromCharCode(key);
if(character.match( /[' ']/)) {
alert("Blank space is not allowed in the Name");
return false;
}
}
});
이건 어때?
"my test string \t\t with crazy stuff is cool ".replace(/\s{2,9999}|\t/g, ' ')
출력 "my test string with crazy stuff is cool "
이것도 탭을 제거합니다.
\s
있습니다. 불필요하게 복잡한 정규 표현식은 쓸 수도 있습니다 /\s+/g
.