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;
});