Harf veya sayı olmayan herhangi bir karakterle eşleşen normal ifadeyi bulmaya çalışıyorum. Yani (,, @, £, () vb. Gibi karakterler ...
Bulduktan sonra onu boş bir alanla değiştirmek istiyorum.
Herhangi bir tavsiye.
Harf veya sayı olmayan herhangi bir karakterle eşleşen normal ifadeyi bulmaya çalışıyorum. Yani (,, @, £, () vb. Gibi karakterler ...
Bulduktan sonra onu boş bir alanla değiştirmek istiyorum.
Herhangi bir tavsiye.
Yanıtlar:
Harf veya sayı dışındaki herhangi bir şeyi eşleştirmek için şunu deneyebilirsiniz:
[^a-zA-Z0-9]
Ve değiştirmek için:
var str = 'dfj,dsf7lfsd .sdklfj';
str = str.replace(/[^A-Za-z0-9]/g, ' ');
Bu normal ifade, harf, rakam veya alt çizgi ( _
) karakteri olmayan herhangi bir şeyle eşleşir .
\W
Örneğin JavaScript'te:
"(,,@,£,() asdf 345345".replace(/\W/g, ' '); // Output: " asdf 345345"
Aradığınız:
var yourVar = '1324567890abc§$)%';
yourVar = yourVar.replace(/[^a-zA-Z0-9]/g, ' ');
Bu, alfanümerik olmayan tüm karakterleri bir boşlukla değiştirir.
Sondaki "g", tüm oluşumların yerini alır.
Bunun yerine az'yi (küçük) ve AZ (büyük harf) belirtme da kullanabilirsiniz in-küçük harfe duyarlı seçeneği: /[^a-z0-9]/gi
.
Bu çok geç, ancak kabul edilmiş bir cevap olmadığından en basit olduğunu düşündüğüm şeyi sunmak istiyorum: \ D - tüm rakam olmayan karakterlerle eşleşir.
var x = "123 235-25%";
x.replace(/\D/g, '');
X: "12323525" ile sonuçlar
Bkz. Https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
str.replace yapmayı deneyin (/ [^ \ w] /); Dizinizdeki tüm alfabe dışı ve sayıların yerini alacak!
Düzenleme 1: str.replace(/[^\w]/g, ' ')
str.replace(/[^\w]/g, ' ')
. Eğer /g
bayrak eklemezseniz, sadece ilk geçtiği yerin yerini alacaktır. Ve bir değiştirme dizesi tanımlamazsanız, burada bir boşluk ' '
, undefined
her yerde ile değiştirilecektir. Son olarak, eşleştikleri için alt çizgiler değiştirilmeyecektir \w
. Bu cevap mükemmel bir cevap değil.
/[A-Z]/ig
/[^A-Z]/ig
/[0-9]/g
veya/\d+/g
/[^0-9]/g
veya/\D+/g
/[^A-Z0-9]/ig
Başka olası desenler var
Sadece başkalarının görmesi için:
someString.replaceAll("([^\\p{L}\\p{N}])", " ");
harf olmayan ve sayı olmayan tüm unicode karakterleri kaldırır.
replaceAll
ve \p{..}
özellik kaçışları geniş çapta uygulanmıyor.
Denediniz mi str = str.replace(/\W|_/g,'');
, herhangi bir karakter içermeyen bir dize döndürecektir ve boru çubuğundan sonra |
onları yakalamak için özel bir karakter olup olmadığını da belirtebilirsiniz .
var str = "1324567890abc§$)% John Doe #$@'.replace(/\W|_/g, '');
geri dönecek str = 1324567890abcJohnDoe
veya rakamları ve harfleri arayın ve boş dizeyle ("") değiştirin:
var str = "1324567890abc§$)% John Doe #$@".replace(/\w|_/g, '');
geri dönecek str = '§$)% #$@';
Harf veya sayı veya harf dışında herhangi bir şeyi aksan işaretleriyle eşleştirmek için şunu é
deneyebilirsiniz:
[^\wÀ-úÀ-ÿ]
Ve değiştirmek için:
var str = 'dfj,dsf7é@lfsd .sdklfàj1';
str = str.replace(/[^\wÀ-úÀ-ÿ]/g, '_');
Aksan işaretleri desteğiyle en üstteki gönderiden esinlenilmiştir
\w
Word karakterleri içindir ve tam olarak aynıdır[a-zA-Z0-9_]
(alt çizginin bir kelime karakteri olarak kabul edildiğine dikkat edin.) ... yani kısaltma şöyle olacaktırstr.replace(/[^\w]/g, ' ')