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

  • Photoshop Pro Help

    Photoshop Pr

    1 Ocak 2007
  • SRC RECORDS

    SRC RECORDS

    2 EKİM 2006
  • xSammyJoe1

    xSammyJoe1

    19 Temmuz 2011