AngularJS-ng表单上的图案不适合某些特殊符号,如美元符号

AngularJS-ng表单上的图案不适合某些特殊符号,如美元符号,angularjs,forms,ng-messages,angularjs-ng-pattern,Angularjs,Forms,Ng Messages,Angularjs Ng Pattern,我正在用AngularJS 1.5编写一个应用程序。我正在尝试编写一个功能,用户可以在应用程序中验证他们的密码,我正在使用ng消息尝试验证表单 我的发件人有两个字段:密码和确认密码。 这两个验证条件是:两个密码都是必需的,并且密码必须匹配 我遇到的问题是一些特殊字符的模式匹配失败。美元符号失败,但并非所有特殊字符都失败。我需要它为所有角色工作 这是我的JSFIDLE: 代码片段: <div> <label class="item" ng-

我正在用AngularJS 1.5编写一个应用程序。我正在尝试编写一个功能,用户可以在应用程序中验证他们的密码,我正在使用ng消息尝试验证表单

我的发件人有两个字段:密码和确认密码。 这两个验证条件是:两个密码都是必需的,并且密码必须匹配

我遇到的问题是一些特殊字符的模式匹配失败。美元符号失败,但并非所有特殊字符都失败。我需要它为所有角色工作

这是我的JSFIDLE:

代码片段:

  <div>
    <label 
      class="item" 
      ng-class="{ 'has-error' : vm.verifyPassword.password.$invalid && (vm.verifyPassword.$submitted || vm.verifyPassword.$dirty) }">
    <span class="input-label">Password</span>
    <input
      id="password"
      type="password"
      name="password"
      ng-model="vm.data.password"
      placeholder="password"
      required>
    </label>
  </div>

暗语

问题在于JSFIDLE中的这一行,您将vm.data.password(作为字符串)传递给ng模式

ng-pattern="vm.data.password"
根据ngPattern的参数文件部分:

必须计算为RegExp或可解析为RegExp或RegExp文本的字符串的AngularJS表达式


所以AngularJS将您的输入解析为正则表达式,这就是为什么一些符号失败的原因,例如$(美元符号),因为$是正则表达式中的保留关键字。

我认为最干净的方法是为此创建您自己的验证器哦,我需要这些字符来工作,所以我能做什么?