Javascript Regexp-不接受空格,但应
我只希望我的输入只接受字母和空格,因为我的输入用于名称,这不起作用,我已经尝试在正则表达式中放置一些空格。 我的正则表达式工作正常,但空格不工作。Javascript Regexp-不接受空格,但应,javascript,regex,input,Javascript,Regex,Input,我只希望我的输入只接受字母和空格,因为我的输入用于名称,这不起作用,我已经尝试在正则表达式中放置一些空格。 我的正则表达式工作正常,但空格不工作。 // without space $('#name').on('input', function (e) { this.value = this.value.replace(/[^a-zA-Z.,ñÑ ]/g, ''); }); // with space but it didnt work $('#name').on('input', f
// without space
$('#name').on('input', function (e) {
this.value = this.value.replace(/[^a-zA-Z.,ñÑ ]/g, '');
});
// with space but it didnt work
$('#name').on('input', function (e) {
this.value = this.value.replace(/[^a-zA-Z .,ñÑ]/g, '');
});
// with space again but it fails work also
$('#name').on('input', function (e) {
this.value = this.value.replace(/[^a-zA-Z. ,ñÑ]/g, '');
});
对单个空格使用
\s
。另外,\s+
用于匹配多个空格
$('#name').keyup(函数(){
var new_value=this.value.replace(/[^a-zA-Z.\s,ññ]/g',);
this.value=新的_值;
$('#output').html(新的#u值);
});代码>
试试这个:
this.value = this.value.replace(/[^a-zA-Z.,ñÑ\su00A0\u2008\u2009\u200A\u200B\u202F\uFEFF]/g, '');
这将标识许多Unicode空间,包括可能出现在HTML页面中的非中断空间(U+00A0)。其他将匹配格式空间。有更多的unicode空格,因此如果这不起作用,我们可以添加更多代码。当e.which | e.keyCode
不在允许的范围内时,使用keydown事件并取消。
例如:
keydown
事件处于可取消状态keyup
、keypressed
和input
不可用。您可以排除数字和大多数非字母字符。减号-您不能看到字符,只能看到代码。空格是非单词字符,因此请使用\W例如,给我们提供您希望与正则表达式匹配的字符串示例,正如您所看到的,有几个正确的答案由于未知原因不适用于您,有很多正确的答案,我不知道问题是什么,为什么它对我不起作用,这就是我来这里的原因。我只需要输入就可以接受字母和空格,包括ññ.this.value=this.value.replace(/[^a-zA-Z.\s,ññ]/g',);我只是把我的验证放在不同的js中两次,一次是旧的,另一次是它不能正常工作的原因。谢谢,先生。空格在正则表达式中不是一个特殊字符,因此不需要转义。我只需将我的验证放在不同的js中两次,一次是旧的,另一次是它无法正常工作的原因。谢谢,先生。\s
不是指“单一空间”;它的意思是“单个空格”。这意味着换行符、制表符和垂直制表符也会匹配。我只是将我的验证放在不同的js中两次,一次放在旧的js中,另一次放在另一个js中,这就是它不能正常工作的原因。谢谢,先生。
$('#name').on('keydown', function(e){
var key = e.which || e.keyCode;
if(allowedKeysArray.indexOf(key) ==-1)
return false;
});