2012-06-27 2 views
3

이전에 정의 된 변수에 공백이 있는지 확인하는 코드를 작성하려고합니다. 그 경우 공백을 대시로 바꿉니다. 이것은 다른 함수에 중첩됩니다.문자열에 공백이 포함 된 경우 자바 스크립트 공백을 대시로 바꿉니다.

function foo(){    
    // If stateName has a space replaces the space with a dash 

    window.open('http://website.html/state-solar-policy/' + stateName); 
} 
+0

는 [여기서 반대이다 (http://stackoverflow.com/questions/6234073/javascript-replace-hypens-with-space) 함수 인자들을 역방향. –

+2

왜 확인 하시겠습니까? 교체 할 공간이 없으면 아무 것도 일어나지 않으므로 수표를 잊어 버릴 수 있습니다. 그냥'str = str.replace ('', '-'); ' – DanRedux

+0

@ DanRedux. '''는 하나의 공백 옵션입니다. '\ s'는 그것들 모두를 캡쳐합니다. – gdoron

답변

9

사용이 정규식 : 그것은 문자열이 '아무튼 경우 정규 표현식이 더 고장의 원인이 없다는 것을 대시 (-)

모든 공백의 문자를 대체 할

stateName.replace(/\s/g,"-"); 

그 안에 공간이있다.
대시로 발견되면 모든 공백을 대체하고 찾지 못하면 아무것도하지 않습니다.

+0

굉장합니다. 이것은 완벽하게 작동했습니다! – user1486922

-1
var string="john doe is great"; 
var dashedstring=string.split(" ").join("-"); 
+3

왜 문자열을 다시 문자열로 변환하는 것보다 배열로 변환합니까? 정규식을 사용하십시오. – gdoron

+0

오래된 습관이 몹시 죽습니다. 나는 이것이 내가 90 년대에 가진 모든 것 인 이유를 여전히 사용한다. 300 단어가 넘는 문자열에 대해서는 좀 더 효율적인 것을 찾기 시작합니다. – Tschallacka

+0

분명히있을 것입니다. Windows 95에는 javascript가 있습니다. 그게 내가 배우기 시작했을 때. – Tschallacka

1
var string = "blah blah blah" 
var new_string = string.replace(" ", "-"); 
관련 문제