'9.61'을 '9:61'로 변환하기 위해 JavaScript에서 string replace를 어떻게 수행합니까?


275

주어진 코드 라인

var value = $("#text").val();

value = 9.61로 변환 9.61해야 9:61합니다. 여기서 JavaScript 바꾸기 기능을 사용하려면 어떻게해야합니까?


29
이것은 jQuery와 관련이 없지만 평범한 오래된 자바 스크립트와 관련이 있습니다.
Ikke

1
비슷한 문제가 있습니다. 자바 스크립트에 'var'변수가 있으며 문자열 / 문자를 바꾸고 싶습니다. 이 코드를 시도했습니다 : var myObject = "my % dynamic % value \ n"; myObject = myObject.replace ( "%", ""). replace ( "\ n", ""); 또한 시도 myObject = myObject.replace ( '%', ''). replace ( '\ n', ''); 대체가 알려진 기능이 아니라는 오류가 발생합니다.
Balaji Birajdar

위의 문제에 대한 정확한 오류 메시지는 "Microsoft JScript 런타임 오류 : 개체가 속성 또는 메서드 '대체'를 지원하지 않습니다"
Balaji Birajdar

답변:


539

다음과 같이하십시오 :

var value = $("#text").val(); // value = 9.61 use $("#text").text() if you are not on select box...
value = value.replace(".", ":"); // value = 9:61
// can then use it as
$("#anothertext").val(value);

현재 버전의 jQuery를 반영하도록 업데이트되었습니다. 또한 여기에 동일한 상황에 가장 적합한 많은 답변이 있습니다. 개발자는 어느 것이 어느 것인지 알아야합니다.

모든 발생을 교체

한 번에 여러 문자를 바꾸려면 다음과 같은 것을 사용하십시오 name.replace(/&/g, "-"). 여기에 모든 &문자를로 바꿉니다 -. g"글로벌"을 의미

참고 -오류를 피하기 위해 대괄호를 추가해야 할 수도 있습니다.title.replace(/[+]/g, " ")

크레딧 비스와 단테 쿨라 리


6
나는 그것을 시도했지만 value.replace로 오류가 발생합니다 : 대체는 기능이 아닙니다 :(
Nisanth Kumar

thephpdeveloper는 그것을 올바르게하기 위해 무언가를 추가했습니다 ...해야 할 일 ... 편집 된 위 참조
Reigel

7
한 번에 둘 이상의 값을 바꾸려고 시도하면 작동하지 않습니다. :(
vissu

56
한 번에 여러 문자를 바꾸려면 다음과 같은 것을 사용하십시오 name.replace(/&/g, "-"). 여기에서는 모든 '&'문자를 '-'로 바꿉니다. "g"는 "글로벌"을 의미합니다.
vissu

9
참고 – 오류를 피하기 위해 대괄호를 추가해야 할 수도 있습니다. –title.replace(/[+]/g, " ")
Dante Cullari

67

아마도이 작업을 수행하는 가장 우아한 방법은 한 번에 수행하는 것입니다. 참조하십시오 val().

$("#text").val(function(i, val) {
  return val.replace('.', ':');
});

다음과 비교 :

var val = $("#text").val();
$("#text").val(val.replace('.', ':'));

문서에서 :

.val( function(index, value) )

function (index, value) 설정할 값을 반환하는 함수입니다.

이 방법은 일반적으로 양식 필드의 값을 설정하는 데 사용됩니다. 들면 <select multiple="multiple"> 요소는 복수의 어레이로 전달하여 선택 될 수있다.

.val()방법을 사용하면 함수를 전달하여 값을 설정할 수 있습니다. jQuery 1.4부터 함수에는 현재 요소의 색인과 현재 값의 두 가지 인수가 전달됩니다.

$('input:text.items').val(function(index, value) {
  return value + ' ' + this.className;
});

이 예에서는 문자열 "items"를 텍스트 입력 값에 추가합니다.

jQuery 1.4 이상이 필요합니다.


그러나 내가 보는 것처럼 그 사람은 var value제안한대로 텍스트 상자의 값이 아닌 값 을 변경하고 싶습니다 ...
Reigel

41

jQuery 의 메소드 체인을 좋아 합니다. 간단히 ...

    var value = $("#text").val().replace('.',':');

    //Or if you want to return the value:
    return $("#text").val().replace('.',':');

17
이것은 실제로 jquery chaining과 관련이 없습니다. 당신이 전화 한 후에 .val()는 일반 문자열입니다.
zerkms

19

간단한 라이너 :

$("#text").val( $("#text").val().replace(".", ":") );

1
이것은 값이 문자열 인 경우에만 작동합니다 ... 또한 $("#text")두 번 호출 하면 좋은 습관이 없습니다 ...
Reigel

OP는 또한 $("#text"):)
Reigel

댓글 1 ... 잘못되었습니다. 의견 2 ... 그의 질문의 논리에 대해 생각하고 지정할 필요가 없습니다.
VIDesignz

그것을 증명 .. 기억, 날짜Jan 27 '10 at 10:16
Reigel

당신도이 .. 읽어보십시오 .. 좋은 방법을 모르는 stackoverflow.com/questions/3230727/...
Reigel

6

일반 JavaScript 함수를 사용하여 수행 할 수 있습니다 replace().

value.replace(".", ":");

3
내가 놓친 것이 확실하지 않지만 텍스트 상자에서 값이 나오기 때문에 문자열이 아닙니다. 예 jsfiddle.net/xMBuA
Anders

4

replace와 같은 JavaScript 함수를 사용할 수 있으며 jQuery 코드를 괄호로 묶을 수 있습니다.

var value = ($("#text").val()).replace(".", ":");

3
$("#text").val(function(i,v) { 
   return v.replace(".", ":"); 
});

1
(9.61 + "").replace('.',':')

또는 9.61이미 문자열 인 경우 :

"9.61".replace('.',':')
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.