AngularJS ng-pattern 不适用于预期的条件
AngularJS ng-pattern doesn't work with conditions as expected
我正在尝试使用 ng-pattern 的条件,但它显示 zip 一直无效。如果我在没有条件的情况下使用模式,一切正常。
<md-input-container flex="20">
<label>Zip Code</label>
<input ng-model="$ctrl.PostalCode" name="Zip" ng-required="true"
ng-pattern="{{$ctrl.Country == 'Canada' ? '/^(\d{5}(-\d{4})?|[A-Z]\d[A-Z] *\d[A-Z]\d)$/' : '/^[0-9]*$/'}}">
<div ng-messages="$ctrl.testForm.Zip.$error">
<div ng-message="pattern">Zip Code is not valid.</div>
</div>
</md-input-container>
如果您在渲染 HTML 中检查您的图案,您可以看到问题所在。 \d
中的 \
被忽略,因为您没有转义它。
试试这个:
ng-pattern="{{$ctrl.Country == 'Canada' ? '^(\d{5}(-\d{4})?|[A-Z]\d[A-Z] *\d[A-Z]\d)$' : '^[0-9]*$'}}"
我正在尝试使用 ng-pattern 的条件,但它显示 zip 一直无效。如果我在没有条件的情况下使用模式,一切正常。
<md-input-container flex="20">
<label>Zip Code</label>
<input ng-model="$ctrl.PostalCode" name="Zip" ng-required="true"
ng-pattern="{{$ctrl.Country == 'Canada' ? '/^(\d{5}(-\d{4})?|[A-Z]\d[A-Z] *\d[A-Z]\d)$/' : '/^[0-9]*$/'}}">
<div ng-messages="$ctrl.testForm.Zip.$error">
<div ng-message="pattern">Zip Code is not valid.</div>
</div>
</md-input-container>
如果您在渲染 HTML 中检查您的图案,您可以看到问题所在。 \d
中的 \
被忽略,因为您没有转义它。
试试这个:
ng-pattern="{{$ctrl.Country == 'Canada' ? '^(\d{5}(-\d{4})?|[A-Z]\d[A-Z] *\d[A-Z]\d)$' : '^[0-9]*$'}}"