2012-04-19 123 views
1

我有英文单词搜索字段(字典样式)。此代码确保它只接受字母和不带特殊字符的条款。在输入中允许输入西班牙特殊字符

$('#q').keyup(function(){ 
    $(this).val($(this).val().replace(/[^a-zA-Z ]/g,function(str){return '';})); 
}); 

最近我还不得不实行西班牙语单词搜索字段。我应该只接受A-Z A-Z,当然这些还有:

ñáéíóúü

ÑÁÉÍÓÚ

就是这样。有任何想法吗?谢谢。

回答

2

对于不区分大小写的正则表达式,您可以使用标记i ..我刚刚添加了您的特殊字符。

$('#q').keyup(function(){ 
    $(this).val($(this).val().replace(/[^a-zñáéíóúü ]/ig,function(str){return '';})); 
}); 
+0

注:我也不得不加上“和¨到允许的字符列表。如果我不这样做,用户将永远无法输入像á这样的内容。在西班牙语键盘上,您首先必须添加'...然后a,它会自动转换为' – andufo 2012-04-19 16:13:27

+0

我注意到这里存在一个问题:s ...如果用户使用光标键更正单词(可以说用户按下LEFT)keyup()方法理解为也应该检查该键。任何解决方法? – andufo 2012-04-19 16:28:55

+0

我不喜欢这些关键控件,我更喜欢检查变化的输入。此外,这个解决方案拒绝将复制的回文字符复制到该字段中。 – tarmaq 2012-04-19 16:40:23

2

试试这个

/[^a-zñáéíóúüA-ZÑÁÉÍÓÚ]/g 
+0

我选择@ tarmaq的解决方案,因为它使用i标志 – andufo 2012-04-19 16:15:42