SORU
24 AĞUSTOS 2010, Salı


Orada bir RegExp.Javascript işlevi kaçış?

Ben sadece olası bir dize dışında bir düzenli ifade oluşturmak istiyor.

var usersString = "Hello?!*`~World()[]";
var expression = new RegExp(RegExp.escape(usersString))
var matches = "Hello".match(expression);

Bunun için yerleşik bir yöntem var mı? İnsanlar ne kullanıyorsunuz? Ruby RegExp.escape. Benim kendi yazmak gerekiyor gibi hissetmiyorum, bir şeyler olmalı standart vardır. Teşekkürler!

CEVAP
24 AĞUSTOS 2010, Salı


İşlevi yukarıda bağlantılı yetersizdir. ^ $ (dize başlangıç ve bitiş), ya da karakter bir grup aralıkları için kullanılan -, kaçmak için başarısız olur.

Bu işlevi kullanın:

RegExp.escape= function(s) {
    return s.replace(/[-\/\\^$* ?.()|[\]{}]/g, '\\$&');
};

Süre görünse de gereksiz ilk bakışta, kaçan - (^) işlevi için uygun kaçış karakterleri eklenecek bir karakter sınıfı olarak vücudun normal ifade.

/ kaçan işlevi karakterler JS düzenli daha sonra eval için birebir kullanılacak kaçmak için uygundur.

İkisinden de kaçış için bir dezavantajı yok gibi, daha geniş anlamda kullanım durumları karşılamak için kaçmak için yapar.

Ve evet, bu standart JavaScript parçası olmayan bir hayal kırıklığı başarısız.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Abe Olandres

    Abe Olandres

    16 EYLÜL 2006
  • bmarian22

    bmarian22

    22 Aralık 2007
  • Submissions101

    Submissions1

    23 ŞUBAT 2007