Angularjs模式“意外的下一个字符”

时间:2019-03-05 00:08:47

标签: angularjs validation input

这是我收到的有关以下输入的错误: Error: [$parse:lexerr] Lexer Error: Unexpected next character at columns 0-0 [^] in expression [^$|^[0-9]{4}\-[0-9]{2}\-[0-9]{3}$].

<input
  type='text'
  name="precision"
  ng-model="$ctrl.list[$index][$ctrl.idFieldName]"
  ng-required
  ng-blur="$ctrl.validateInput($ctrl.list[$index][$ctrl.idFieldName], $index)"
  ng-pattern="^$|^[0-9]{4}\-[0-9]{2}\-[0-9]{3}$" />

2 个答案:

答案 0 :(得分:0)

应该是ng-pattern而不仅仅是pattern,

<input
  name="precision"
  ng-model="$ctrl.list[$index][$ctrl.idFieldName]"
  ng-required
  ng-blur="$ctrl.validateInput($ctrl.list[$index][$ctrl.idFieldName], $index)"
  ng-pattern="^$|^[0-9]{4}\-[0-9]{2}\-[0-9]{3}$" />

答案 1 :(得分:0)

该模式必须写为正则表达式

ng-pattern="/^$|^[0-9]{4}\-[0-9]{2}\-[0-9]{3}$/"

<input
 type='text'
 name="precision"
 ng-model="$ctrl.list[$index][$ctrl.idFieldName]"
 ng-required
 ng-blur="$ctrl.validateInput($ctrl.list[$index][$ctrl.idFieldName], $index)"
 ng-pattern="/^$|^[0-9]{4}\-[0-9]{2}\-[0-9]{3}$/" />