Wil*_*ill 16 javascript regex angularjs angularjs-scope angularjs-model
由于某种原因,初始值不会出现在字段中,但没有ng-pattern的第二个字段确实有效.有任何想法吗?
angular.module('app', []).controller('MainCtrl', function($scope) {
$scope.widget = {title: 'abc', title2: 'abc'};
});
<div ng-app="app" ng-controller="MainCtrl">
<input ng-model="widget.title" required ng-pattern="/[a-zA-Z]{4}[0-9]{6,6}[a-zA-Z0-9]{3}/">
<br /><br />
input 1: {{ widget.title }}
<br /><br />
<input ng-model="widget.title2" required>
<br /><br />
input 2: {{ widget.title2 }}
</div>
Run Code Online (Sandbox Code Playgroud)
Ved*_*Ved 42
我也面临同样的问题.找到了解决方法来执行此操作.
你必须在你的控制器中做这样的事情.
$scope.myRegex = /[a-zA-Z]{4}[0-9]{6,6}[a-zA-Z0-9]{3}/; (不要在引号中加上表达式)
最后
<input ng-model="widget.title" required ng-pattern="myRegex">
它现在将起作用.
Sam*_*Sam 19
UPDATE
我稍微调查了一下(从未真正使用过Angular),并且通过name在窗体和输入上使用属性,您可以获取我最新的JSFiddle中显示的错误.它的格式为:{{formName.inputName.$error}}.这将返回一个参数等于布尔值的对象.所以{{form.title.$error.pattern}}会true在有正则表达式(所以你会显示错误)的错误.我也清理(使用相同的)你的正则表达式:/^[A-Z]{4}\d{6}[A-Z\d]{3}$/i.
旧
该ng-pattern属性尝试根据此正则表达式匹配字段:/[a-zA-Z]{4}[0-9]{6,6}[a-zA-Z0-9]{3}/.这转换为4个字母字符,6个数字和3个字母数字字符.一旦你有匹配的模式,它就会出现.
您应该能够删除该ng-pattern属性或将表达式更改为不太具体.例如,只要整个字符串是字母数字,这个JSFiddle就会接受任何值.如果您需要有关其他模式的帮助,请更新问题.
| 归档时间: |
|
| 查看次数: |
80806 次 |
| 最近记录: |