Javascript 用于避免仅输入数字的正则表达式(不输入任何其他字符)

Javascript 用于避免仅输入数字的正则表达式(不输入任何其他字符),javascript,regex,Javascript,Regex,我使用的正则表达式类似于: /^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+)$/ 这是一个正则表达式,用于至少包含1个数字和1个字符的字母数字 但是我正在尝试使用一个避免数字输入的正则表达式。i、 e.如果只有数字是该字段的唯一输入,则应拒绝该字段 那么我应该使用哪种正则表达式呢 编辑: 我需要的输入可以是'abc111'、'abc 111'、'abc@111","abc@111" 我的非必需输入为“111”、“sdf”(左侧和右侧不允许有空格) 谢谢 至少有

我使用的正则表达式类似于:

/^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+)$/
这是一个正则表达式,用于至少包含1个数字和1个字符的字母数字

但是我正在尝试使用一个避免数字输入的正则表达式。i、 e.如果只有数字是该字段的唯一输入,则应拒绝该字段

那么我应该使用哪种正则表达式呢

编辑: 我需要的输入可以是'abc111'、'abc 111'、'abc@111","abc@111"

我的非必需输入为“111”、“sdf”(左侧和右侧不允许有空格)

谢谢

至少有一个不是数字

编辑:评论中提出的额外问题 如果还希望删除空白,请使用(最简单的!)或使用RegExp捕获除空白以外的所有内容:

/^\s(.*[^0-9].*)\s$)` 
说明:

/^         // Start of the line (no characters before)
 \s        // Any whitespace (thus right after the start of the line)
 (         // Start capturing group
   .*      // Any character (zero or more)
   [^0-9]  // A non-numeric character so at least one is present, as required
   .*      // Any character (zero or more)
  )        // End capturing group
  \s       // Any whitespace (thus right before the end of the line)
$/         // End of the line (no characters after this)

最简单的一个呢?([^0-9]+)?

你能澄清你的问题吗?如果您只输入数字,正则表达式将失败。@如果我只输入数字,如1、2或99等,则stema Yes u R猜测正确。。他们应该拒绝,但如果我输入像aa11、aa11等值和其他特殊字符,自己删除空格不是更方便用户吗?为什么这不起作用?你能解释一下你和@Sergey KudnavtsevEh给出的答案中的区别吗?我的答案是第一个?不,他的回答添加了
+
,意思是“至少一个或多个”。如果您的regexp中还有其他元素,则需要使用它,例如
/a[0-9]b/
表示“从a开始,然后是一个数字,然后是a b”,其中
/a[0-9]+b/
表示“从a开始,然后是至少一个(但可能更多)数字,然后是a b”。在本例中,两种解决方案是等效的,而我的解决方案更短;)此外,他还加入了
()
,以便对regexp中的元素进行分组(并捕获),可能是因为您在问题中也做了同样的事情。除非您明确需要一个捕获组(稍后使用
\1\2\3
),否则您不应该使用它。以及如何自动修剪引导和训练whitespaces@OMTheEternity:实际上,这两种解决方案在您的上下文中是等效的,Konerak的版本更短。由于Konerak还为空格添加了额外的部分,我建议您使用他的解决方案。
/^         // Start of the line (no characters before)
 \s        // Any whitespace (thus right after the start of the line)
 (         // Start capturing group
   .*      // Any character (zero or more)
   [^0-9]  // A non-numeric character so at least one is present, as required
   .*      // Any character (zero or more)
  )        // End capturing group
  \s       // Any whitespace (thus right before the end of the line)
$/         // End of the line (no characters after this)