簡體   English   中英

正則表達式,僅允許某些字符集

[英]Regular expression for allowing only a certain set of characters

我想要一些幫助創建正則表達式來解析文本框上的字符串的幫助。 我目前有以下兩種javascript方法:

function removeIllegalCharacters(word) {
    return word.replace(/[^a-zA-Z 0-9,.]/g, '');
}

$("#comment").keyup(function() {
 this.value = removeIllegalCharacters(this.value);
}); 

我想將/[^a-zA-Z 0-9,.]/g正則表達式替換為僅接受以下字符集的正則表達式:

  • az
  • AZ
  • 0-9
  • áéíóúü
  • ÁÉÍÓÚÜ
  • ñÑ
  • ;,.
  • ()
  • - +

這可能很簡單,但是我幾乎沒有正則表達式技能。 提前致謝。

只需添加這些字符即可。

function removeIllegalCharacters(word) {
    return word.replace(/[^a-zA-Z 0-9,.áéíóúüÁÉÍÓÚÜñÑ();+-]/g, '');
}
return word.replace(/[^a-zA-Z0-9áéíóúüÁÉÍÓÚÜñÑ\(\);,\.]/g, '');

對於某些非標准字母,您可能必須使用十六進制轉義序列(\\ x ##)或Unicode轉義序列(\\ u ####),但這將為您提供一個良好的開端。 或者,稍微簡化一下:

return word.replace(/[^\w\dáéíóúüÁÉÍÓÚÜñÑ\(\);,\.]/g, '');

如果我正確理解了您的要求,則只允許列出的字符,並刪除其余所有字符。 如果是這種情況,您可以簡單地將char類擴展為:

function removeIllegalCharacters(word) {
    return word.replace(/[^a-zA-Z0-9áéíóúüÁÉÍÓÚÜñÑ;,.()]/g, '');
}

您是否嘗試過:[^ a-zA-Z 0-9;,..áéíóúüÁÉÍÓÓÚÜñÑ()]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM