internet pencereler Android
Genişletmek

JavaScript bir dizgede alt tabakanın kullanılabilirliği. Javascript - Satır - JS Row'dan Canavar Sil

JavaScript'e yazdığımda, satırlarla birlikte çalışan yöntemlerin (ve sipariş, argümanların tanımı) netleştirmek için genellikle arama motorlarına başvurmanız gerekir.

Bu yazıda, çizgilerle ilgili en yaygın javascript yöntemlerinin örneklerini ve tanımlamayı deneyeceğim. Kolaylık için en popüler yöntemler, makalenin en üstünde bulunur.

Bir dize dönüşürüz

Bir numarayı, Boolean değerini veya nesneyi dizgeye dönüştürebilirsiniz.

Var myNumber \u003d 24; // 24 var Mystering \u003d mynumber.tostring (); // "24"

String () işlevini kullanarak benzer manipülasyon yapabilirsiniz.

Var myNumber \u003d 24; // 24 Var MyString \u003d String (MyNumber); // "24"

Nicholas Svas şöyle diyor: "Değer (null veya undefined) konusunda emin değilseniz, dize değişken türünden bağımsızlığa döndürdüğü için String () işlevini kullanın."

tanımsız. değişkenin herhangi bir değer atanmadığı anlamına gelir bOŞ - Boş değerine atanan şey (null'ın boş bir nesne olarak tanımlandığı söylenebilir).

Dizeyi alt diziye böldük

Dizeyi alt diziden bir diziye bölmek için Bölünmüş Yöntemini () kullanabilirsiniz:

Var mystring \u003d "Coming, apart,, virgül"; var substringarray \u003d mystring.split (","); // ["geliyor", "apart", ",", ",", "virgül"] var arraylimited \u003d MyString.Split (",", 3); // ["geliyor", "apart", "at"]

Son satırdan aşağıdaki gibi, ikinci isteğe bağlı argümanın değeri, iade edilen dizideki öğelerin sayısını belirler.

Dize uzunluğu al

Uzunluk özelliklerini kullanarak, satırdaki Unicode karakter sayısını bulabilirsiniz:

Var mystring \u003d "Siz" oldukça bir karakter. "; Var stringlength \u003d mystring.length; // 25

Dizideki alt tabakayı belirler

Gerginlik yapmanın iki yolu vardır:

Endeks dosyasını () kullanın:

Var stringone \u003d "Johnny Waldo Harrison Waldo"; Var whereswaldo \u003d stringone.indexof ("waldo"); // 7.

Dizin () yöntemi, dizideki (çizginin başlangıcından itibaren) bir alt dizişi (ilk iletilen argüman) arıyor ve girişimcilerin dizeye girmeye başladığı ilk karakterin konumunu döndürür.

LastIndExof () kullanın:

Var stringone \u003d "Johnny Waldo Harrison Waldo"; Var whereswaldo \u003d stringone.lastindexof ("waldo"); // 22.

LastIndExOf () yöntemi aynı şeyi yapar, dışında dize girmek için son yerini alıyor.

Alt kaymanın her iki yöntem de bulunması durumunda -1. İkinci isteğe bağlı argüman, bir arama başlatmak istediğiniz dizgedeki bir pozisyonu gösterir. Öyleyse, eğer ikinci argümanın () 'ı indekslenmesi için () 5'tir, daha sonra arama 5. karakterden başlayacaktır ve 0-4 karakter göz ardı edilecektir. LastIndExof () için, ayrıca ikinci argüman 5 ise, arama ters yönde başlayacaktır ve 6. ve üstten gelen semboller göz ardı edilir.

Dize parçası nasıl değiştirilir

Parçayı (veya hatta tümü) dizelerini değiştirmek için, Değiştir () yöntemini kullanın.

Var slugger \u003d "Josh Hamilton"; Var betterslugger \u003d slugger.replace ("H Hamilton", "e Bautista"); Konsol.log (betterslugger); // "jose bautista"

İlk argüman, değiştirmeye tabi olan alt dizinin bir kısmını içerir; İkinci argüman, değiştirilebilir substring yerine yol açacak çizgidir. Sadece alt dizinin ilk örneği değiştirilecektir.

Alt trafiğin tüm girişini değiştirmek için, "G" bayrağıyla normal ifadeyi kullanın.

Var mystring \u003d "Otomotiv sahilinde otomotiv kabukları satıyor"; var newstring \u003d myString.Replace (/ otomotiv / g, "deniz"); Console.log (newstring); // "Deniz kıyısında deniz kabukları satıyor"

İkinci argüman, değiştirilebilir bir alt veya işlev içerebilir.

Belirli bir pozisyonda bir karakter bulun

Hangi karakterin belirli bir konumda olduğunu bulmak için, Charat () yöntemini kullanabilirsiniz:

Var mystring \u003d "bir tüyün kuşları"; var whatsatseven \u003d mystring.charat (7); // "f"

Javascript'te sıklıkla olduğu gibi, ilk pozisyon 0'dan itibaren kendi geri sayımını yönlendirir ve 1 ile değil.

Alternatif olarak, CharcoDeat () yöntemini kullanabilirsiniz, ancak sembolü yerine kodunu alacaksınız.

Var mystring \u003d "bir tüyün kuşları"; Var whatsatseven \u003d mystring.charcodeat (7); // "102" var whatsateleven \u003d mystring.charcodeat (11); // "70"

Büyük harf için kodun (konum 11) aynı harfin kodundan farklı olduğunu, ancak küçük kayıtlarda (konum 7) olduğunu unutmayın.

Javascript'te dizginlerin birleştirilmesi

Çoğu zaman çizgilerin birleştirilmesi için operatörü (+) kullanacaksınız. Ancak, Concat () yöntemini kullanarak dizeleri birleştirebilirsiniz.

Var stringone \u003d "knibb yüksek futbol"; Var stringtwo \u003d stringone.concat ("kurallar"); // "Knibb Yüksek Futbol Kuralları"

CONCAT () içinde, bir çoğul kümeyi aktarabilirsiniz ve sonuçta ortaya çıkan satırda onları Concat () yöntemine eklemek için düzenlenecektir.

Var stringone \u003d "knibb"; Var stringtwo \u003d "yüksek"; Var stringthree \u003d "futbol"; Var stringfor \u003d "kurallar"; var finalstring \u003d stringone.concat (stringtwo, stringthree, stringfour); Konsol.log (finalstring); // "knibb yüksek futbol kuralları."

Çizginin bir kısmı (JavaScript'teki ikame çıkarın)

Yeni bir dize oluşturmanın üç farklı yolu vardır, "çekerek" alt dizinin bir kısmını zaten mevcut olan dizeden.

Dilim () kullanarak:

Var stringone \u003d "abcdefghijklmnopqrstuvwxyz"; Var stringtwo \u003d stringone.slice (5, 10); // "fghij"

Substring () kullanarak:

Var stringone \u003d "abcdefghijklmnopqrstuvwxyz"; Var stringtwo \u003d stringone.substring (5, 10); // "fghij"

Hem (Slice () hem de alt dizin ()) yöntemleri için, ilk argüman, alt dizinin başladığı sembolün konumudur (geri sayım 0), ikinci argüman, alt yalıtımın bittiği sembolün konumudur. ve ikinci argümanda belirtilen sembol, döndürülen alt diziye dahil edilmemiştir.

SUBSTR () kullanarak:

Var stringone \u003d "abcdefghijklmnopqrstuvwxyz"; Var stringtwo \u003d stringone.substr (5, 10); // "fghijklmno"

Substr yöntemi için, ilk argüman aynı zamanda alt dizinin başladığı karakterin konumunu da tanımlar. İkinci argüman isteğe bağlıdır. Ancak aynı zamanda, ikinci argüman, ilk argümanda belirlenmiş olan konumdan başlayarak, alt tabakaya dahil edilmesi gereken karakter sayısını belirler. Bu teknik, yukarıdaki örnek tarafından iyi gösterilmiştir.

Javascript'e dizeyi alt veya üst kayıtlara dönüştürün

Gerekli dönüşümü yapmak için dört yöntem vardır. İKİ Dize karakterlerini en üst kayıt cihazına dönüştürmek için.

Var stringone \u003d "SPECTION YUKARI," Seni duyabiliyorum. "; Var stringtwo \u003d stringone.tolocaleuppercase (); //" Konuşmak, "Seni duyabiliyorum" var stringthree \u003d stringone.ToupperCase (); // "konuş, seni duyabiliyorum"

Ve dizeleri küçük harfe dönüştürmek için iki:

VAR Stringone \u003d "Siz bağırmak zorunda değilsiniz"; var stringtwo \u003d stringone.tolocalElowercase (); // "Yell" var "var" var stringthree \u003d stringone.tolowercase (); // "Sen bağırmak zorunda değilsin"

Kural olarak, yerel ayarlama yöntemi ile yerel olmayan yöntem arasında bir fark yoktur, ancak "bazı diller için, örneğin, sembol kaydı, Unicode sisteminde kurulan kaydı takip etmeyen, kullanmanın sonuçlarını, Yerel olmayan yöntem farklı olabilir. " Öyleyse aşağıdaki kuralı izleyin: "Kodun çalışacağı dili, yerel ayar yöntemlerini kullanmak için daha güvenli bir şekilde bilmiyorsanız."

Javascript'te Eşleşen Şablon

2 yöntem kullanarak bir şablonun varlığını bir satırda kontrol edebilirsiniz.

Eşleşme () yöntemi dize nesnesinden çağrılır, düzenli bir ifade bir argüman olarak iletilir.

Var dize \u003d "Ahşap Chuck Chuck Ne Kadar Ahşap Olabilir"; var mypattern \u003d /.ood/; var myresult \u003d mystring.match (mypattern); // ["wood"] var patternlocation \u003d myresult.index; // 9 var originalString \u003d myresult.input // "Ahşap Chuck Chuck Ne Kadar Ahşap Olabilir"

Ve Exec () Yöntemin bir Regexp nesnesi tarafından denir, bir dize bir argüman olarak iletilir:

Var dize \u003d "Ahşap Chuck Chuck Ne Kadar Ahşap Olabilir"; var mypattern \u003d /.huck/; var myresult \u003d mypattern.exec (mystring); // ["chuck"] var patternlocation \u003d myresult.index; // 27 var originalString \u003d myresult.input // "Ahşap Chuck Chuck Ne Kadar Ahşap Olabilir"

Her iki yöntem de ilk çakıştırılmış girişi döndürür. Eğer tesadüfler bulunmazsa, NULL iade edilecektir. Düzenli ifadenin bir "G" bayrağına sahipse, sonuç olarak tüm tesadüfler içeren bir dizi iade edilecektir.

Ayrıca, bir argümanın normal bir ifadeyi aldığı ve ilk çakışan şablonun başlangıç \u200b\u200bkonumunu döndüren ARAMA () yöntemini de kullanabilirsiniz.

Var mystring \u003d "varsayım"; var paternationLocation \u003d MyString.Search (/ ume /); // 3.

Eğer bir tesadüf bulunamadısa, yöntem döner -1.

Sonraki sıralama için iki satırın karşılaştırılması

İki satırlığı, dil standardındaki sıralama düzenine bağlı olarak karşılaştırmak için, localecompare yöntemini kullanabilirsiniz. YerelEcompare yöntemi üç olası değer döndürür.

MyString \u003d "Tavuk"; Var mystringtwo \u003d "yumurta"; vas whiccamefirst \u003d mystring.localecompare (mystringtwo); // -1 (-2'yi döndüren krom hariç), "-2)" mystring.localecompare ("tavuk"); // 0 hacayfirst \u003d mystring.localecompare ("Apple"); // 1 (krom 2 döndürür)

Yukarıda gösterildiği gibi, sıralama sırasındaki orijinal dize, dize argümanından önce ortaya çıktığında, orijinal dizginin orijinal hattından sonra çıktığında, değeri +1'dir. Sıfır değeri iade edilirse, iki satır eşdeğerdir.

() () Yöntemi, bir dizgenin gerekli olup olmadığını doğru veya yanlış döndüren başka bir dizgede bulunamayacağını belirler.

Sözdizimi: -string.includes (SearchString [, konum])

arama Kaydı: - Bu satırda aramak istediğiniz dize.

konum: - Ek. Bu hattın bu çizginin aranması yapılacağı; Varsayılan 0.

String \u003d "lol"; Console.log (string.includes ("lol")); // yanlış konsol.log (string.includes ("lol"))); // doğru döndürür.

Aşağı açılır menüde ürün parametrelerini görüntüleyen bir alışveriş sepetim var ve "Evet" i seçerlerse, görünür sayfada başka alanlar yapmak istiyorum.

Sorun, alışveriş sepetinin, her ürün için farklı olabilecek metindeki fiyat değiştiriciye de dahil olmasıdır. Aşağıdaki kod çalışır:

$ (Belge) .Ready (işlev () ($ ("Seç"). Değiştir ("Seçeneği seçin: Seçili"). Metin (); eğer (str \u003d\u003d "Evet (+ $ 6.95)") ($ ("$)") Gravür "). Göster ();) başka ($ (" gravür "). Gizlemek ();)));));

Ancak, işe yaramayan bir şey kullanmayı tercih ederim:

$ (Belge) .Ready (işlev () ($ ("Select"). Değiştir ("Seçeneği seçin: Seçili"). Metin (); eğer (str * \u003d "Evet") ($ (". Gravür"). gösteri ();) başka ($ (". Gravür"). Gizle ();))));));

Seçilen seçenek "YES" kelimesini içeriyorsa, bir işlem yapmak istiyorum ve fiyat değiştiriciyi yok sayar.

Yazarken Javascript.Çizgilerle çalışan yöntemler için sözdizimi bilgi ve parametreleri arayışı içinde genellikle internete tırmanır.

Satırlarla çalışmak için birçok makaleyi okudum. Bu yazıda, satırlarla çalışmak için en yaygın yöntemlerin örnekleri ve kısa açıklamaları gösterilecektir. Hızlı tanıdık için en sık yöntemleri üstte koymaya çalıştım.

Tabii ki, çoğu deneyimli geliştiriciler zaten birçok yönteme aşinadır, ancak bu, bu, yeni başlayanlar için, basit araçlarla karmaşık işlemlerin gerçekleştirilmesine yardımcı olabilecek yöntemlerin spektrumunu anlamaları için iyi bir liste olduğunu düşünüyorum.

Dize dönüşümü

Bir numarayı, BooLevo ifadesini veya nesneyi dizgiye dönüştürebilirsiniz:

Var myNumber \u003d 24; // 24 var Mystering \u003d mynumber.tostring (); // "24"

İle de yapabilirsin String ():

Var myNumber \u003d 24; // 24 Var MyString \u003d String (MyNumber); // "24"

Değerin olmadığından emin değilseniz bOŞ veya tanımsız., kullanabilirsiniz String ()Değer türüne bakılmaksızın her zaman bir dize döndürür.

Substring'deki dizenin bölünmesi

Dizeleri bir substring dizisinde paylaşmak için, yöntemi kullanabilirsiniz. bölünmüş ():

Var mystring \u003d "Coming, apart,, virgül"; var substringarray \u003d mystring.split (","); // ["geliyor", "apart", ",", ",", "virgül"] var arraylimited \u003d MyString.Split (",", 3); // ["geliyor", "apart", "at"]

Son satırda görülebileceği gibi, ikinci fonksiyon parametresi son dizide olacak öğeler sayısının sınırıdır.

Uzunluk Dizesi Alma

Dizede kaç karakter bulmak için özelliği kullanıyoruz uzunluk:

Var mystring \u003d "Siz" oldukça bir karakter. "; Var stringlength \u003d mystring.length; // 25

Arama alt dizgininde

Substring'i aramak için iki yöntem vardır:

Kullanma indeksi ():

Var stringone \u003d "Johnny Waldo Harrison Waldo"; Var whereswaldo \u003d stringone.indexof ("waldo"); // 7.

indeksi () Yöntem, dizenin başlangıcından itibaren alt dizişlemeyi aramaya başlar ve alt tabakanın ilk girişinin başlangıcının konumunu döndürür. Bu durumda, 7 pozisyon.

Kullanma LastIndExof ():

Var stringone \u003d "Johnny Waldo Harrison Waldo"; Var whereswaldo \u003d stringone.lastindexof ("waldo"); // 22.

Yöntem, son giriş alt dizisinin ilk konumunu dizeye döndürür.

Her iki yöntemde, alt tabaka bulunmazsa, -1 değeri iade edilir ve her ikisi de bir arama başlatmak istediğiniz dizgedeki konumu gösteren isteğe bağlı ikinci argümanı alır. Böylece, ikinci argüman "5" ise, indeksi () 0-4 karakterleri görmezden gelinerek 5 karakterle arama yapmaya başlarken, lastIndExof () Bir sembolden 5 aramaya başlar ve ters yöne gider, 6 karakterleri görmezden gelir.

Yedek alt tabaka

Alt dizinin girişini üst üste başka bir alt dizeye değiştirmek için, kullanabilirsiniz. değiştir ():

Var slugger \u003d "Josh Hamilton"; Var betterslugger \u003d slugger.replace ("H Hamilton", "e Bautista"); Konsol.log (betterslugger); // "jose bautista"

İlk argüman, değiştirmek istediğiniz ve ikinci argüman yeni bir satırdır. İşlev, yalnızca alt dizenin dizedeki ilk girişinin yerini alır.

Tüm girişleri değiştirmek için, küresel bir bayrakla düzenli bir ifade kullanmanız gerekir:

Var mystring \u003d "Otomotiv sahilinde otomotiv kabukları satıyor"; var newstring \u003d myString.Replace (/ otomotiv / g, "deniz"); Console.log (newstring); // "Deniz kıyısında deniz kabukları satıyor"

İkinci argüman özel bir şablon veya işlevi içerebilir. Ayrıntılar okunabilir.

Dizede belirli bir pozisyon için bir sembol alın

Bir işlevi kullanarak bir sembol alabiliriz. charat ():

Var mystring \u003d "bir tüyün kuşları"; var whatsatseven \u003d mystring.charat (7); // "f"

Javascript'te sıklıkla olduğu gibi, ipteki ilk pozisyon 0 ile başlar ve 1 ile değil.

Alternatif özellikler kullanılabilir charcodeat () Sembol kodu olan işlev.

Var mystring \u003d "bir tüyün kuşları"; Var whatsatseven \u003d mystring.charcodeat (7); // "102" var whatsateleven \u003d mystring.charcodeat (11); // "70"

"F" (11 konumu) sembolü için kodun "F" sembolü (konum 7) dışında olduğunu unutmayın.

Muhafaza

Çoğu durumda, satırları bağlamak için "+" operatörünü kullanabilirsiniz. Ancak yöntemi de kullanabilirsiniz. concat ():

Var stringone \u003d "knibb yüksek futbol"; Var stringtwo \u003d stringone.concat ("kurallar"); // "Knibb Yüksek Futbol Kuralları"

Bu şekilde, kaydedildikleri sırayla birçok satırı birine bağlayabiliriz:

Var stringone \u003d "knibb"; Var stringtwo \u003d "yüksek"; Var stringthree \u003d "futbol"; Var stringfor \u003d "kurallar"; var finalstring \u003d stringone.concat (stringtwo, stringthree, stringfour); Konsol.log (finalstring); // "knibb yüksek futbol kuralları."

Yüzeylerin Çıkarılması

Başka bir satırın bir kısmından bir dize almanın 3 yolu vardır:

Kullanma dilim ():

Var stringone \u003d "abcdefghijklmnopqrstuvwxyz"; Var stringtwo \u003d stringone.slice (5, 10); // "fghij"

Kullanma substring ():

Var stringone \u003d "abcdefghijklmnopqrstuvwxyz"; Var stringtwo \u003d stringone.substring (5, 10); // "fghij"

Her ikisinde de, ilk parametre işlevi, alt çizginin başladığı karakterdir (0 öğe ile başlar) ve ikinci argüman (isteğe bağlı), alt dizinin iade edildiği sembolün konumudur. Örnek olarak (5, 10), çizgi 5 ve 9 konum arasında döndürülür.

Kullanma substr ():

Var stringone \u003d "abcdefghijklmnopqrstuvwxyz"; Var stringtwo \u003d stringone.substr (5, 10); // "fghijklmno"

İlk argüman, yeni çizginin başladığı sembolün konumu ve ikinci argüman, yeni dizenin başlangıç \u200b\u200bkonumundan karakter sayısıdır. Şunlar. (5, 10) 5 pozisyondan başlayarak 10 karakter döndürür.

Dize'nin üst veya alt kaydıya çevirisi.

Çeviri için 4 yöntem vardır. İlk 2, dizeyi büyük harfe çevirir:

Var stringone \u003d "SPECTION YUKARI," Seni duyabiliyorum. "; Var stringtwo \u003d stringone.tolocaleuppercase (); //" Konuşmak, "Seni duyabiliyorum" var stringthree \u003d stringone.ToupperCase (); // "konuş, seni duyabiliyorum"

Diğer 2 Bir dize küçük harfe çevir:

VAR Stringone \u003d "Siz bağırmak zorunda değilsiniz"; var stringtwo \u003d stringone.tolocalElowercase (); // "Yell" var "var" var stringthree \u003d stringone.tolowercase (); // "Sen bağırmak zorunda değilsin"

"Yerel ayar" yöntemlerini kullanmak daha iyidir, çünkü Farklı yerlerde, örneğin, Türkiye'de, sicil ekranı tamamen alıştığımız gibi değil ve bu nedenle sonuç istediğimiz biri olabilir. "Yerel ayar" yöntemlerini kullanıyorsanız, böyle bir sorun olmaz.

Desen eşleştirme.

Dizeleyindeki deseni eşleştirme, farklı şekillerde çalışan 2 yöntemle kullanılabilir.

Yöntem eşleşme () Dize için geçerlidir ve bir parametre olarak düzenli bir ifade alır:

Var dize \u003d "Ahşap Chuck Chuck Ne Kadar Ahşap Olabilir"; var mypattern \u003d /.ood/; var myresult \u003d mystring.match (mypattern); // ["wood"] var patternlocation \u003d myresult.index; // 9 var originalString \u003d myresult.input // "Ahşap Chuck Chuck Ne Kadar Ahşap Olabilir"

Yöntem exec () Normal ifade nesnesine uygulanır ve bir dize bir parametre olarak kabul eder:

Var dize \u003d "Ahşap Chuck Chuck Ne Kadar Ahşap Olabilir"; var mypattern \u003d /.huck/; var myresult \u003d mypattern.exec (mystring); // ["chuck"] var patternlocation \u003d myresult.index; // 27 var originalString \u003d myresult.input // "Ahşap Chuck Chuck Ne Kadar Ahşap Olabilir"

Her iki yöntemde de, sadece ilk tesadüf döndürülür. Eğer tesadüf yoksa - İade bOŞ.

Yöntemi de kullanabilirsiniz aRAMA ()Düzenli bir ifade alır ve şablonun ilk tesadüfinin konumunu döndürür:

Var mystring \u003d "varsayım"; var paternationLocation \u003d MyString.Search (/ ume /); // 3.

Eğer tesadüf yoksa " -1 «.

Sıralama için iki satırın karşılaştırılması

İlk alfabetik olarak nereye gittiğini belirlemek için 2 satırı karşılaştırabilirsiniz. Bunu yapmak için yöntemi kullanın localecompare ()3 olası değer döndürür:

Var gizeme \u003d "tavuk"; Var mystringtwo \u003d "yumurta"; vas whiccamefirst \u003d mystring.localecompare (mystringtwo); // -1 (Chrome Returns -2) hacayifirst \u003d mystring.localecompare ("tavuk"); // 0 hacayfirst \u003d mystring.localecompare ("Apple"); // 1 (krom 2 döndürür)

Yukarıda gösterildiği gibi, dize argümanı orijinal satırdan sonra gelirse, negatif bir sayı döndürülür. Dize argümanı kaynak satırından önce ise pozitif bir numara. İade edilirse 0 - Öyleyse satırlar eşittir.

İade edilen değeri kontrol etmek için, eğer kullanılması daha iyidir (sonuç< 0), чем if (result === -1). Последнее не будет работать в Chrome.

Dikkatiniz için teşekkürler, umarım çok fazla yeni şey ve ilginç öğrenmişsinizdir!

Makale Yazar: Alex. Kategori:
Yayın Tarihi: 03/19/2013