【问题标题】:JavaScript regex to validate an input is more than 0 characters用于验证输入的 JavaScript 正则表达式是否超过 0 个字符
【发布时间】:2013-12-10 19:09:50
【问题描述】:

如果这非常简单,请原谅我,但我用谷歌搜索和搜索并找不到一个好的例子。我对正则表达式不是很好,只需要验证输入有超过 1 个字符(即不是空白)。我正在使用Angular ng-pattern。

<input type="text" ng-model="username" ng-pattern="/regex/">

我需要验证输入中是否存在某些内容(不是空的)。我用了几个例子,但问题是一旦你清除输入,角度仍然认为模式是有效的。一旦输入再次为空,我需要它失败,但不是在第一次加载时。一如既往,非常感谢所有帮助。

编辑: 我基本上需要一个正则表达式来验证该字段不为空。这是plnkr

【问题讨论】:

  • /.{1,}/,或者甚至只是 /./ 应该匹配除空字符串以外的任何内容
  • 你有一个代表问题的小提琴吗?
  • @David 在 EDIT 部分的描述中有一个 plnkr 链接。

标签: javascript regex angularjs


【解决方案1】:

您可以为此使用required

<input type="text" ng-model="username" name="username" required>

查看这个 pluckr fork:http://plnkr.co/edit/VwY1WPdCocKHwww69ZSj?p=preview

文档中的更多内容:http://docs.angularjs.org/api/ng.directive:input#usage_parameters

如果你真的想使用ng-pattern,你应该添加输入的开始/结束(^$):

<input type="text" ng-model="username" ng-pattern="/^$/">

但请记住,这将验证空白输入(输入值与模式匹配)。

【讨论】:

  • 谢谢@David。这正是我一直在寻找的。欣赏它。
  • 对于 Angular 7/8 所需的允许用户键入空字符串。你知道要验证以确保输入不只是空格吗?
【解决方案2】:

使用/.+/. 表示所有可能的字符(换行符除外,+ 表示至少一次)

【讨论】:

  • 我试过了。问题是当您清除仍然算作有效的输入(即它不是空字符串)时。我基本上需要一个验证字段不为空的正则表达式。
  • /[^\s]/ 将匹配任何内容,但不匹配空格
  • @adeneo 抱歉,效果相同。角度仍然认为空字段是有效的
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-01-07
  • 1970-01-01
  • 2016-08-23
  • 2011-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多