Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 仅当文本框中存在任何字符或数字时,才允许在该文本框中留有空格_Javascript_Jquery - Fatal编程技术网

Javascript 仅当文本框中存在任何字符或数字时,才允许在该文本框中留有空格

Javascript 仅当文本框中存在任何字符或数字时,才允许在该文本框中留有空格,javascript,jquery,Javascript,Jquery,我有一个textbox,我需要以这样的方式进行验证:如果textbox为空,它不应该允许空格。如果文本框中有任何值,则只有文本框允许空格。我尝试下面的代码,但没有工作 var letters = /^[0-9a-zA-Z]+$/; $("#input1").on("blur ", function() { function alphanumeric(username) { if (username.value.match(letters)) { return true

我有一个textbox,我需要以这样的方式进行验证:如果textbox为空,它不应该允许空格。如果文本框中有任何值,则只有文本框允许空格。我尝试下面的代码,但没有工作

var letters = /^[0-9a-zA-Z]+$/;

$("#input1").on("blur ", function() {
  function alphanumeric(username) { 
    if (username.value.match(letters)) {
      return true;
    } else {
      $('#input1').on('keypress', function(e) {
       if (e.which == 32)
         return false;
      });
      return false;
    }
  }
})
为什么不修剪一下呢

username.trim()
之后,您可以返回匹配结果。

为什么不直接修剪

username.trim()
之后,您可以返回匹配结果。

您的正则表达式似乎有误。 您不允许使用空格字符

请尝试此选项:/\S/

\S是任何非空白字符

如果要以字符开头,它将变成/^\S/

^是您希望从以下字符开始的时间 $是指当您希望按上一个字符结束时,您的正则表达式似乎是错误的。 您不允许使用空格字符

请尝试此选项:/\S/

\S是任何非空白字符

如果要以字符开头,它将变成/^\S/

^是您希望从以下字符开始的时间 $是指您希望在模糊事件中添加一个函数,该函数将修剪值,从而删除前面和后面的空白。如果该值为空,则会导致

$input1.onblur,函数{ 如果$this.val.trim=={ 警报“空值”; } }; 在模糊事件上添加一个函数,该函数将修剪值,从而删除前面和后面的空白。如果该值为空,则会导致

$input1.onblur,函数{ 如果$this.val.trim=={ 警报“空值”; } };
如果您使用的是表单,则不需要任何javascript


如果您使用的是表单,则不需要任何javascript


您可以这样做:

$(function() {
  $('#input1').on('keypress', function(e) {
    if ($(this).val() == "")
      if (e.which == 32)
        return false;
  });
});

您可以这样做:

$(function() {
  $('#input1').on('keypress', function(e) {
    if ($(this).val() == "")
      if (e.which == 32)
        return false;
  });
});

不要在事件处理程序中添加事件处理程序。每次你模糊你得到另一个按键-只需添加按键本身,并检查那里的内容。如果你删除你的正则表达式中的$符号,我认为它会以你想要的方式工作。不要在事件处理程序中添加事件处理程序。每次你模糊你得到另一个按键-只需添加按键本身,并检查那里的内容。如果你删除你的正则表达式中的$符号,我认为它会以你想要的方式工作。正如SUN提到的,如果输入为空,他想禁用输入空格,但是.trim会从用户名中删除空格。所以当只有空格时,函数将返回false,表单验证将失败?这不是期望的结果吗?返回username.value.trim.matchletters;其中字母还应包含包含空格的选项。如果e.which==32,则在本例中返回false用于输入字符,而不是验证。验证方法应该是检查用户名的不同方法。正如SUN在问题标题中提到的,他试图允许在文本框中输入空格。正如SUN提到的,如果输入为空,他想禁用输入空格,但是.trim会从用户名中删除空格。所以当只有空格时,函数将返回false,表单验证将失败?这不是期望的结果吗?返回username.value.trim.matchletters;其中字母还应包含包含空格的选项。如果e.which==32,则在本例中返回false用于输入字符,而不是验证。验证方法应该是检查用户名的不同方法。正如SUN在问题标题中提到的,他试图允许在文本框中输入空格。