2014-05-19 8 views
0

분할 또는 결합을 사용하고 싶지 않습니다.첫 번째 하위 요소 만 바꾸기

var str = "cause variety of files"; 
alert(str.replace(" " , "_")); 

출력 위 코드 : "cause_variety of files"

I 추구 출력은 기본적으로

str.replace(/ /g, "_"); 

에서, replace 함수를 선두를 바꾸 "cause_variety_of_files"

+0

@ JoaoPalma - 네 말이 맞아. 내가 분할을 사용하지 않고도 질문을 먼저 읽으십시오. –

+0

정규 표현식이있는 솔루션이 너무 많습니다. 대부분의 upvotes –

+0

에 대한 답변을 볼 수 있습니다. 정보입니다. 감사합니다. –

답변

3

이 코드를보십시오. 따라서 global 플래그가있는 RegExp를 사용해야합니다.

당신은 여기 단골 식에 자세히 알아볼 수 있습니다 : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions

+1

"정규식을 사용해야합니다."반드시 정규식의 기능에 대해 설명하지 않습니다. 더 설명해야합니다. –

+0

어떻게 작동하는지 설명해 주시겠습니까? –

+0

방금 ​​내 대답을 편집했습니다 – Magus

0

여러 공간

str.replace(/\s+/g,'_'); 

또는 단일 공간이 시도

str.replace(/\s/g,'_'); 
+3

'시험해보십시오 '는 질문자에게 아무것도 가르치지 않습니다. 당신이 한 일과 왜 그렇게해야 하는지를 설명하십시오. 그렇지 않으면 좋은 대답이 아닙니다. –

0

정규 표현식과 replace() 기능을 사용해보십시오 :

$(document).ready(function() { 
    var elem = "cause variety of files"; 
    console.log(elem.replace(/\s+/g, '_')); 
}); 

정규식은 \ s + 패턴을 사용하여 모든 공백 (1 이상)을 취해 원하는 문자열로 바꾸십시오. 귀하의 경우 밑줄.

+1

디버그 문과 같이'alert()'를 사용하면 안됩니다. 'console.log()'는 디버깅을 위해 사용되어야합니다 (또한 실행을 일시 정지해야하는 경우 dev 도구에서 중단 점을 사용할 수 있기 때문에). 또한 귀하의 정규식이 무엇을 설명하십시오 –

관련 문제