我想帮助创建一个正则表达式来解析文本框中的字符串。我目前有这两种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
正则表达式替换为只接受以下字符集的正则表达式:
a-z
A-Z
0-9
áéíóúü
ÁÉÍÓÚÜ
ñÑ
;,.
()
- +
这可能很简单,但我几乎没有正则表达式技能。提前谢谢。
答案 0 :(得分:5)
只需添加这些字符。
function removeIllegalCharacters(word) {
return word.replace(/[^a-zA-Z 0-9,.áéíóúüÁÉÍÓÚÜñÑ();+-]/g, '');
}
答案 1 :(得分:0)
return word.replace(/[^a-zA-Z0-9áéíóúüÁÉÍÓÚÜñÑ\(\);,\.]/g, '');
对于某些非标准字母,您可能必须使用十六进制转义序列(\ x ##)或unicode转义序列(\ u ####),但这将为您提供良好的开端。或者,略微简化:
return word.replace(/[^\w\dáéíóúüÁÉÍÓÚÜñÑ\(\);,\.]/g, '');
答案 2 :(得分:0)
如果我已正确理解您的要求,您只想允许列出的字符,并且您要删除所有字符。如果是这种情况,您只需将char类扩展为:
function removeIllegalCharacters(word) {
return word.replace(/[^a-zA-Z0-9áéíóúüÁÉÍÓÚÜñÑ;,.()]/g, '');
}
答案 3 :(得分:0)
您是否尝试过:[^ a-zA-Z 0-9;,。áéíóúüÁÉÍÓÚÜñÑ()]