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

  • geraldnonadoez

    geraldnonado

    3 Temmuz 2013
  • Grace Su

    Grace Su

    6 Ocak 2006
  • InfinityWard

    InfinityWard

    19 EYLÜL 2006