'9.61'i' 9:61 'e dönüştürmek için JavaScript'te dize değiştirme işlemini nasıl yapabilirim?


275

Kod satırı verildiğinde

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

ve value = 9.61dönüştürmem 9.61gerek 9:61. JavaScript değiştirme işlevini burada nasıl kullanabilirim?


29
Bunun jQuery ile bir ilgisi olmadığını, sadece düz eski javascript ile ilgisi olmadığını unutmayın.
Ikke

1
Benzer bir sorunum var. Javascript bir 'var' değişkeni var ve ben dizeyi / karakterleri değiştirmek istiyorum. Bu kodu denedim: var myObject = "% dinamik% değerim \ n"; myObject = myObject.replace ( "%", "") değiştirin. ( "" "" \ n); Ayrıca myObject = myObject.replace ('%', '') denedi. Replace ('\ n', ''); Bana, yerine geçmesi bilinen bir işlev değil hatası veriyor
Balaji Birajdar

Yukarıdaki sorunun tam hata iletisi "Microsoft JScript çalışma zamanı hatası: Nesne özelliği veya 'replace' yöntemini desteklemiyor"
Balaji Birajdar

Yanıtlar:


539

Şöyle yapın:

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'nin mevcut sürümüne yansıtacak şekilde güncellendi. Ayrıca burada bununla aynı duruma en iyi şekilde cevap verecek birçok cevap var. Bir geliştirici olarak hangisinin hangisi olduğunu bilmelisiniz.

Tüm tekrarlamaları değiştir

Aynı anda birden fazla karakter değiştirmek için bu gibi bazı şey kullanın: name.replace(/&/g, "-"). Burada tüm &karakterleri değiştiriyorum -. g"küresel" anlamına gelir

Not - Eğer bir hata önlemek için köşeli parantez eklemeniz gerekebilir -title.replace(/[+]/g, " ")

kredi vissu ve Dante Cullari


6
Bunu denedim ama value.replace gibi bir hata oluştu bir işlev değildir :(
Nisanth Kumar

thephpdeveloper düzeltmek için bir şeyler ekledi ... bunu yapmalıyım ... yukarıda düzenlendi
Reigel

7
Bir seferde birden fazla değeri değiştirmeye çalışırsak, bu çalışmaz. :(
vissu

56
Aynı anda birden fazla karakter değiştirmek için bu gibi bazı şey kullanın: name.replace(/&/g, "-"). Burada tüm 've' karakterleri '-' ile değiştiriyorum. "g", "global" anlamına gelir.
vissu

9
Not - bir hatayı önlemek için köşeli parantez eklemeniz gerekebilir -title.replace(/[+]/g, " ")
Dante Cullari

67

Muhtemelen bunu yapmanın en zarif yolu tek adımda yapmaktır. Bkz val().

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

nazaran:

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

Dokümanlardan:

.val( function(index, value) )

function (dizin, değer) Ayarlanacak değeri döndüren bir işlev.

Bu yöntem genellikle form alanlarının değerlerini ayarlamak için kullanılır. İçin <select multiple="multiple"> elemanları, birden fazla s bir dizide geçirilerek seçilebilir.

.val()Yöntem, bize bir işlevde geçirilerek değerini ayarlamak için olanak sağlar. JQuery 1.4 itibariyle, işleve geçerli öğenin dizini ve geçerli değeri olmak üzere iki bağımsız değişken iletilir:

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

Bu örnek, metin girişlerinin değerlerine "öğeler" dizesini ekler.

Bu, jQuery 1.4+ sürümünü gerektirir.


ama gördüğüm gibi adam sadece istediğiniz var valuegibi metin kutusundaki değeri değiştirmek istiyor ...
Reigel

41

JQuery'nin yöntem zincirlemesini seviyorum . Tek yapmanız gereken ...

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

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

17
bunun jquery zincirlemesi ile bir ilgisi yok. Aradıktan sonra .val()normal bir dize.
zerkms

19

Basit bir astar:

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

1
Bu sadece değer bir dize ise işe yarayacaktır ... ve ayrıca, $("#text")orada iki kez çağırmak iyi bir uygulama değil ...
Reigel

OP ayrıca $("#text"):) değerini değiştirmek istediğini belirtmedi
Reigel

Yorum 1 ... Yanlış. Yorum 2 ... sorusunun mantığını düşünün, belirtmeye gerek yok.
VIDesignz

kanıtlamak .. ve hatırlıyorum, tarihliJan 27 '10 at 10:16
Reigel

iyi uygulamaları bile bilmiyorsunuz .. bunu okumak isteyebilirsiniz .. stackoverflow.com/questions/3230727/…
Reigel

6

Normal JavaScript işlevi ile yapılabilir replace().

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

3
Im bir şey özledim emin değilim ama değer metin kutusundan geldiğinden beri bir dize hayır? Örnek jsfiddle.net/xMBuA
Anders

4

Replace gibi JavaScript işlevlerini kullanabilir ve jQuery kodunu parantez içine alabilirsiniz:

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

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

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

Veya 9.61zaten bir dize iseniz :

"9.61".replace('.',':')
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.