JQuery'de alt dize nasıl yapılır


115

İstemci tarafında jquery'yi "nameGorge" alt dizesi için nasıl kullanabilirim ve "name" i kaldırarak yalnızca "Gorge" çıktısı verebilir miyim?

var name = "nameGorge"; //output Gorge

15
jQuery, JavaScript ile yazılmış bir kitaplıktır. JavaScript'in üstünde kullanılır. İstediğiniz şey, jQuery kitaplığını kullanmanıza gerek kalmadan JavaScript'te yapılabilir.
Jeff

1
jQuery IS JavaScript (tam olarak bir JavaScript kitaplığı, ancak yine de JavaScript). Bununla birlikte, bir alt dize elde etmek için jQuery kullanmanın, düz JavaScript'te olduğundan daha kolay yazılabileceğini sanmıyorum.
VoidKing

Yanıtlar:


235

JQuery gerekmez! Sadece alt dize yöntemini kullanın:

var gorge = name.substring(4);

Veya kaldırmak istediğiniz metin statik değilse:

var name = 'nameGorge';
var toRemove = 'name';
var gorge = name.replace(toRemove,'');

5
Üzgünüm, uyuduktan sonra bunun bu kadar sert patlamasını beklemiyordum. Buradaki şeyleri biraz temizledim. Bu arada, birileri okumak gerekiyor bu
BoltClock

Hey BoltClock: Nasılsın? Burada bir noktayı ispatlamaya çalışıyordum, çok teşekkürler .. yani bu, eğer bir müşteri için bir kodu yenilemeye çalışıyorsam ve buraya bir cevap aramaya gelirsem ve operasyonun işaretli cevabı onun için tatmin edicidir. . o zaman aynı soruyu gönderemem ya da sorunumun bir örneğini veremem .. çok ilginç .. bu yüzden sorum şu ki bu adamlar bir jQuery işlevi çalıştırıyorsam ve içinde .split kullanıyorsam bu kadar eminler. jQuery aracılığıyla bunu tetiklemek için yerel JS yöntemine veya bir tür tünellemeye veya proxy'ye başvurarak. Ayrıca soruyu okursanız.
Jean Paul AKA el_vete

Demek istediğim şu ki, jQuery ad alanı içinde çalışmak, durum gerçekten JS'den doğrudan string.split'i çağırıyorsa, pek umursamıyorum, bunun yerine topluluktan anladım ki tam olarak bu soruyu gönderirsem, daraltılmış olarak işaretlenecek, çünkü bu yanıt benim için bir yerde bir jQuery.split dokümantasyon referansı olduğu gerçeğinden daha fazla kabul ediliyor, en azından koduma ve tüm jQuery'ye herhangi bir çelişki vermeden orada olması gerektiğini söylüyor. silinmiş resimler üzerinde görebildiğiniz eklentiler ... bu yüzden bir kez daha teşekkürler
Jean Paul AKA el_vete

5
@JeanPaul - jQuery'de bölünme yoktur (). Bunu zaten halletmiştik. Vanilya JavaScript dizesi almak için önceden kullandığınız text () 'e bağladığınız ve ardından string.split () olarak adlandırdığınız her iki makale. Bu durumda çok yanılıyorsun. Bırak.
Justin Niessner

52

Kullanarak .split(). (İkinci sürüm Dizide .slice()ve kullanır .join().)

var result = name.split('name')[1];
var result = name.split('name').slice( 1 ).join(''); // May be a little safer

Kullanarak .replace().

var result = name.replace('name','');

.slice()Bir Dizede Kullanmak .

var result = name.slice( 4 );

jquery değiştirmeyi desteklemez. Bu Vanilla js
Jude


9

Bu sadece basit JavaScript: bakın substringve substr.


1
Ya da gerçekten slice(). Strange JS'nin aynı şeyi söylemenin pek çok yolu olmalı, hepsi çok farklı. diziler üzerinde slice()tutarlı bir şekilde davrandığı slice()ve sondan indeks için negatif başlangıç ​​ve bitiş dizinlerine izin verdiği için tercih ettiğim yöntemdir .
bobince

@bobince: Doğru, ben hangi hiç hatırlamıyorum substringve substrbir uzunluk parametresi alır ve bir bitiş indeksi aldığı - Hep öğrenmek için docs bakmak gerekir.
casablanca

4

Bunu yapmak için jquery'ye ihtiyacınız yok.

var placeHolder="name";
var res=name.substr(name.indexOf(placeHolder) + placeHolder.length);

Bunu istemci tarafında yapmam gerekiyor ve zaten jquery'im var. O halde ne öneriyorsun? Basit soru için üzgünüm ama js ve jquery konusunda oldukça acemiyim.
Gorge

Bu ifade "nameGorge" döndürür çünkü indexOf ("ad") 0 döndürür.
Justin Niessner

2
var name = "nameGorge";
name.match(/[A-Z].*/)[0]

0

Evet yapabilirsiniz, ancak jQuery kitaplığına değil Javascript'in doğal işlevselliğine dayanır.

http://www.w3schools.com/jsref/jsref_substr.aspsubstr fonksiyonu dize belirli bölümlerini ayıklamak için izin verecektir.

Şimdi, dizenin hangi parçasının ayıklanacağını bulmak için kullanılacak belirli bir dize veya karakter arıyorsanız, indexOf işlevini de kullanabilirsiniz. http://www.w3schools.com/jsref/jsref_IndexOf.asp

Soru biraz belirsiz olsa da; sadece 'isim' ile metin bağlantısı bile istenen sonucu elde edecektir. Alt dizenizi almak için kriterler tam olarak nedir?


1
strposJavaScript ile ilgili bir soruda neden PHP'nin işlevine bağladınız?
casablanca

Haklısın, bugün benim için çok fazla PHP. Uygun JS eşdeğeri ile düzenledim. Yakaladığınız için teşekkürler.
aaronofleonard

-1

Aşağıdakilere ne dersiniz?

<script charset='utf-8' type='text/javascript'>
  jQuery(function($) { var a=$; a.noConflict();
    //assumming that you are using an input text 
    //  element with the text "nameGorge"
    var itext_target = a("input[type='text']:contains('nameGorge')");
    //gives the second part of the split which is 'Gorge'
    itext_target.html().split("nameGorge")[1];
    ...
  });
</script>
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.