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

  • DavideoDesign

    DavideoDesig

    24 NİSAN 2006
  • ecf150king

    ecf150king

    20 Ocak 2006
  • We've moved!

    We've moved!

    7 Ocak 2008