2011-01-31 5 views
0

나는 '제목'이라는 하나의 텍스트 상자를 'url'이라고 부른다. .blur()에서 jquery 사용하기 'title'의 값을 'url'값에 복사하고 공백을 밑줄로 바꿉니다. 그러나 어떤 이유에서든 첫 번째 빈 공간 만 대체하고 전부는 아닙니다. 여기에 코드 :jquery replace not working

$("#title").blur(function(){ 
     var myval = $(this).val().replace(" ", "_"); 
     $("#url").val(myval); 
}); 

내가 뭘 잘못하고 있니? 사전에

감사

답변

10

글로벌 교체, 당신은 g 플래그 정규식을 사용할 필요가 수행합니다

당신은 당신이 원하는 모든 문자열을 찾기 위해 정규 표현식을 사용할 필요가
var myval = $(this).val().replace(/ /g, "_"); 
2

대체하려면 (이 경우 공백).

$("#title").blur(function(){ 
     var myval = $(this).val().replace(/ /g, "_"); 
     $("#url").val(myval); 
}); 

"g"는 "전역"을 의미하므로 첫 번째 일치 후에도 계속 검색합니다.

1

여기 내 바꾸기 기능입니다! 네가 그걸 좋아할 수 있기를 바란다. 사용

function myReplaceMethod(str,find,replace_with){ 
    while (str.indexOf(find) !== -1){ 
     from = str.indexOf(find); 
     to = from + find.length; 
     str = str.substr(0,from)+replace_with+str.substr(to, str.length-to); 
    } 
    return str; 
} 

예 : 자세한 내용은 내 블로그를 방문

str = myReplaceMethod(str,"example1",""); // nothing 
str = myReplaceMethod(str,"example2","new text here"); //for new text 

:. http://www.phpdevblog.eu/2012-06/jquery/javascript-replace-method-not-working-properly.html

0

가장 좋은 방법은 '대신에 "사용하는 그냥

할인 = 항목 .val(). replace (",", ".");

8,09이 값은 8.09로 변환됩니다.