Jquery'yi kullanarak dizeden özel karakterler atlamak

Analitik için bir tür piksel uygulamak zorundayım ve url dizesinde bir oturum kimliği geçirilmesini gerektiriyor. Oturum kimliğim özel karakterler içeriyor. Şuna benziyor BFhGlzT6FBkDr2Zndp0! -1309 Bu dizeden (-!) Karakterleri kaldırmam gerekiyor, bunu jQuery kullanarak nasıl başarabilirim? Jquery'nin bu karakterleri işlemeden önce çıkarmasını sağladığından emin olmalıyım, aksi takdirde analitik bir ziyareti rapor etmeyecektir.

Çocuklar yardımlarınız için teşekkürler ama belki biraz daha açıklamam gerekiyor, piksel kodum buna benzer bir şey "

img src="https://sometime.com/png?org_id=k8vif92&session_ id=T6PtTyRSqhGPYBhp84frwth67n6fL7wcLBFhGlzT6FBkDr2Zndp0!-130901808!1319637471144&m=2&m=2" alt="">

Bu piksel ateşlemeden önce, kaldırmak için sessionId dizesindeki karakteri değiştirmem gerekiyor - ve yeni bir oturum olduğunda her seferinde oturum kimliğinin değişeceğini unutmayın. Genel kod olan bir koda ihtiyacım var, bu yüzden oturum kimliği ne olursa olsun çalışır, özel karakterleri silmeye ihtiyaç duyar.

0

5 cevap

.replace kullanmayı deneyin:

var token = "BFhGlzT6FBkDr2Zndp0!-1309";
token.replace(/[^A-Za-z0-9]/g, "");

Bu, bir harf veya sayı olmayan herhangi bir karakteri kaldıracaktır. Daha özlü:

token.replace(/\W/g, "");

(bu alt çizgiler yerine geçmeyecek)

2
katma
Evet, bu sadece örnek koddu. Ancak normal ifade bir oturum kimliği için çalışacaktır
katma yazar Alex Peattie, kaynak
Açık karakterleri başkalarının önerdiği gibi değiştirmek yerine, istediğin karakterlerin bir setini yaratır ve o setin tersini alır ... bu yüzden istemediğin tüm karakterleri değiştirir. tüm dizeler için
katma yazar jyore, kaynak
Cevabınız için teşekkürler, ancak oturum kimliği karakterlerinin her çalıştığında aynı olmayacağını, oturumda değişeceğine dikkat edin. Sadece diğer karakterleri ne olursa olsun hangi özel oturum kimliğini kaldırmalıyım?
katma yazar Junoonis, kaynak

Kara liste ! ve - ( keman ):

var url = "BFhGlzT6FBkDr2Zndp0!-1309";
document.write(url.replace(/[!\-]/g,""));

Beyaz listeleme alfasayısal ( keman ):

var url = "BFhGlzT6FBkDr2Zndp0!-1309";
document.write(url.replace(/[^a-z0-9]/ig,""));
1
katma
Bir kenara göre, sınıftaki son karakter olduğunda - 'in kaçması gerekmez.
katma yazar Brad Christie, kaynak

Tüm izin verilen karakterleri içeren normal bir ifade karakter seti tanımlayın. Örneğin, sizinki /[a-zA-Z0-9]/ gibi görünebilir. Şimdi tamamlayıcı karakter kümesi [^ a-zA-Z0-9] ile tersine çevirin ve bu karakterleri String.replace yöntemiyle kaldırın. .

mystring = mystring.replace(/[^a-zA-Z0-9]/g, "");
0
katma

You dont need jQuery for this. You can use JavaScript regex. See this jsfiddle

var code = "BFhGlzT6FBkDr2Zndp0!-1309";

code = code.replace(/[!-]/g,"");

alert(code);
0
katma
var str = "BFhGlzT6FBkDr2Zndp0!-1309".replace("!-","");

fiddle: http://jsfiddle.net/neilheinrich/eYCjX/

0
katma
@ mblase75: Ben nheinrish'in yaklaşımını beğendiğimi söylemeliyim. 1) Düz ve noktaya; 2) insanlar normal ifadeyi sonlandırmak için çok hızlıdır (özellikle orijinal sorunun kısalığı ve belirsizliği göz önüne alınırsa); 3) Tamamen kabul edilebilir bir cevaptır.
katma yazar Brad Christie, kaynak
Çizgiler/kesikler veya diğer sayısal olmayanların dizgede yasal olup olmadığını bilmek için yeterli bilgi yoktur. Verilen bilgilere dayanarak, bahsedilen iki karakterin kaldırılmasının çok basit bir yoludur. Tüm sayısal olmayanları veya tüm "!" Örneklerini kaldırma isteği varsa ya da "-", evet daha iyi çözümler olabilirdi.
katma yazar nheinrich, kaynak
Sadece yardım etmeye çalışıyorum @ mblase75. Eğer söz konusu OP, bu iki karakterin tüm türevlerini kaldırmak istemiş olsaydı, ona farklı şekilde yaklaşırdım.
katma yazar nheinrich, kaynak
Her iki örneğini de çıkarmak istiyorsanız! ve - kullanabilirsiniz: str.replace (/ [! -]/g, ""). Fiddle: jsfiddle.net/neilheinrich/zQ5Ya
katma yazar nheinrich, kaynak
Bu çok özel olabilir ... sadece ilk oluşan maçın yerini alacak ... ve bu sıraya göre olmalı ... diğer regex çözümleri daha iyi olurdu
katma yazar jyore, kaynak
Soruyu güncelledim, lütfen yukarı bakın.
katma yazar Junoonis, kaynak
Tüm özel karakterlerin ihmal edilmesini istiyorum, Bu çözüm işe yarıyor ama sadece (! -) ilk örneğini ortadan kaldırıyor ve sonunu bırakıyor! dizede.
katma yazar Junoonis, kaynak