Javascript 使用正则表达式在两个单词之间留出空格

Javascript 使用正则表达式在两个单词之间留出空格,javascript,regex,Javascript,Regex,我需要阻止除逗号以外的特殊字符。所以我使用下面给出的代码。它正在发挥作用,但同时也在消除两个单词之间的空格 据我所知,您希望txt框中允许有空格 所以 这是你的 您需要在\w var chars =/[(,\/\w )]/i; $('input').keyup(function(e) { var value = this.value; var char = value[value.length-1]; if(char !== ' ' || value.length==1 || (

我需要阻止除逗号以外的特殊字符。所以我使用下面给出的代码。它正在发挥作用,但同时也在消除两个单词之间的空格


据我所知,您希望txt框中允许有空格 所以

这是你的

您需要在
\w

var chars =/[(,\/\w )]/i;
$('input').keyup(function(e) {
  var value = this.value;
  var char = value[value.length-1];
    if(char !== ' ' || value.length==1 || (value[value.length-2]!==' ' )){

  if (!chars.test(char)) {
      $(this).val(value.substring(0, value.length-1));
  }
    }
});

请注意,我在
\w
之后添加了空格,因此regexp是
var chars=/[(,\/\w)]/i

就可用性而言,在用户输入时操纵用户的输入可能非常令人沮丧。此外,如果用户键入的速度足够快,它无论如何也无法工作(如上文所述)

更好的办法是验证用户的输入,并让他们实时知道输入是否无效

请尝试以下代码:

var regex =/^[\w\s\,]*$/i;
$('input').keyup(function(e) {

    var message = regex.test(this.value) ? "" : "Error";
    $('#message').html(message);
});

您不能在角色类中包含空格吗?i、 例如,
[(,\/\w)]/i
(现在以空格开头)。@PA.添加空格确实“有效”,因为他的代码会在输入的最后一个字符与他的regexp不匹配时删除它。虽然他也允许
/
。不确定这是否是计划的一部分。如果你打字速度足够快,字符也不会被删除:)也没有理由在这里使用
i
修饰符=)@anni我不知道在所有大写字母中打字与词汇有什么关系?
var regex =/^[\w\s\,]*$/i;
$('input').keyup(function(e) {

    var message = regex.test(this.value) ? "" : "Error";
    $('#message').html(message);
});