Yanıtlar:
[^a-zA-Z\d\s:]
\dve \sPerl tipik gibi eski araçları tarafından desteklenmeyen uzantılarıdır grep, sed, tr, lexvb
Bunu yapmalı:
[^a-zA-Z\d\s:]
Vurgulu latin karakterleri (ör. À Ñ) normal harfler olarak ele almak istiyorsanız (yani, onları eşleştirmekten de kaçının), ayrıca normal ifadenize uygun Unicode aralığını ( \ u00C0- \ u00FF ) eklemeniz gerekir. şöyle görünürdü:
/[^a-zA-Z\d\s:\u00C0-\u00FF]/g
^ sonrasını reddedera-zA-Z büyük ve küçük harflerle eşleşir\d rakamlarla eşleşir\s boşlukla eşleşir (yalnızca boşlukları eşleştirmek istiyorsanız, bunu bir boşlukla değiştirin): iki nokta üst üste ile eşleşir\u00C0-\u00FF aksanlı latin karakterler için Unicode aralığıyla eşleşir.nb. Unicode aralığı eşleştirmesi tüm normal ifade motorlarında çalışmayabilir, ancak yukarıdakiler kesinlikle Javascript'te çalışır ( Codepen'deki bu kalemde görüldüğü gibi ).
NB2. Alt çizgileri eşleştirme konusunda sıkıntı yaşamıyorsanız , harflerle, rakamlarla ve alt çizgilerle eşleşen a-zA-Z\dile değiştirebilirsiniz \w.
Bunu dene:
[^a-zA-Z0-9 :]
JavaScript örneği:
"!@#$%* ABC def:123".replace(/[^a-zA-Z0-9 :]/g, ".")
Çevrimiçi bir örneğe bakın:
Alfasayısal, beyaz boşluk veya "_" yok.
var reg = /[^\w\s)]|[_]/g;
Bu normal ifade C # , PCRE ve Go için çalışır için .
RegexBuddy'den Chrome'da JavaScript için çalışmıyor söylediği gibi . Ama burada bunun bir örneği var.
Bunun ana kısmı şudur:
\p{L}
temsil ettiği \p{L}ya da \p{Letter}herhangi language.` gelen mektupta her türlü
Tam normal ifadenin kendisi: [^\w\d\s:\p{L}]
JavaScript'te:
/[^\w_]/g
^olumsuzluk, yani aşağıdaki kümede olmayan herhangi bir şeyi seçin
\w herhangi bir kelime karakteri (yani herhangi bir alfanümerik karakter, artı alt çizgi)
_ bir 'kelime' karakteri olarak kabul edildiği için alt çizgiyi reddedin
Kullanım örneği - const nonAlphaNumericChars = /[^\w_]/g;
/[^a-zA-Z0-9\s\:]*/