当前位置: 首页 > 知识库问答 >
问题:

NG-输入文本的模式[重复]

胡星汉
2023-03-14

我有以下输入-窗体-控件:

input.form-control(
    ng-model='controller.password'
    ng-minlength='1'
    ng-maxlength='8'
    name='password'
    type="{{ controller.passwordShowType }}"
    ng-pattern='controller.PASSWORD'
    required
)
PASSWORD = /^[A-Za-z0-9!-@#$%^&*()+<>]{1,8}$/;
 'abcdefghijklmnopqrstuvwxyz!@#$%^&*()-+<>ABCDEFGHIJKLMNOP1234567890'

但是如果我像上面那样使用我的regex,我可以输入'、'或‘。符号。正确的正则表达式是什么?

共有1个答案

扈德容
2023-03-14

regex的问题是在方括号(字符集)中使用!-@。Regex认为您试图说“匹配char和char@之间的所有chars”(char code33-64),而不是“use on of[!-@]”。将hypen放在字符集的开头或结尾,或用反斜杠转义。

另见http://www.regular-expressions.info/charclass.html

在大多数regex类型中,字符类中唯一的特殊字符或元字符是闭括号]、反斜杠\、插入符号^和连字符-。

基本上,你必须把连字符放在它们无效的地方,或者把它们转义。

您还可以在http://regexr.com/输入regex以获得regex语法高亮显示--这会使错误变得相当明显,因为连字符的颜色不同。

 类似资料:
  • 问题内容: 我正在尝试允许用户使用和编辑项目列表。(请参阅此小提琴。)但是,我尝试过的两种方法都导致了奇怪的行为:一种方法没有更新模型,另一种方法使每个keydown的表单模糊。 我在这里做错什么了吗?这不是受支持的用例吗? 这是小提琴中的代码,为方便起见进行了复制: ​ 问题答案: 这似乎是一个具有约束力的问题。 建议是不要绑定到基元。 您应该遍历集合内的字符串,而应该遍历对象。解决您的问题 j

  • 问题内容: 我是AngularJS的新手,我遇到的一个问题是无法解决,在stackoverflow上也有类似的问题,但似乎并没有帮助我。我基本上有一个可以通过ng- click更新的表单,但是一旦我在任何文本框中输入文本,这些文本框就不再更新。 这是我的HTML 这是有人单击链接时调用的我的函数 问题答案: 您的链接需要登录。 如果我不得不猜测您的问题,则可能与角度范围问题有关。尝试将ng-mod

  • 我有一个文本输入,我不想允许用户使用空格,所有键入的都会变成小写。 我实际上是在尝试创建“标记”特性,它的工作原理与StackOverflow上的特性类似。

  • 我发现了以下模式: 这是一个可以在HTML5表单中使用的正则表达式。 它验证字段是否使用逗号和两个小数。 它可以在文本框上使用,如下所示: null

  • 可以输出文本。 用法 Your browser does not support the video tag. 案例:标签标签 功能:显示输入的字母。

  • 对此,作者提出了建议