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

  • FF Radio

    FF Radio

    16 Mayıs 2008
  • DanceOn

    DanceOn

    6 Mayıs 2006
  • guillaume2111's channel

    guillaume211

    19 Kasım 2006