0
点赞
收藏
分享

微信扫一扫

AngularJS动态ng-pattern

陌岛 2022-03-11 阅读 4
angular.js

AngularJS动态ng-pattern

利用RegExp

需求:o变量根据a变量的值来变化自己的正则校验!a下拉框选择“数字”时,正则校验o输入框只能输入两位数字;当a下拉框选择“字母”时,正则校验o输入框只能输入两位字母。

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="https://cdn.staticfile.org/angular.js/1.4.6/angular.min.js"></script>
</head>
<body>

<div ng-app="myApp" ng-controller="myCtrl">
	<div>
		控制变量:
		<select ng-model="a">
			<option value='1'>数字</option>
			<option value='2'>字母</option>
		</select>
	</div>
	<div>
		被控制正则变量:
		<input type="text" ng-model="o" id="o" ng-pattern="pattern0"/>	
	</div>
<input ng-show="false" ng-model="pattern0">
</div>

<script>
var app = angular.module('myApp', []);
app.controller('myCtrl', function($scope) {
    $scope.$watch('a', function (newVal, oldVal) {
          if (newVal) {
            if (newVal=='1') {
              $scope.pattern0 = new RegExp('^\\d{2}$');
            } else if (newVal=='2') {
              $scope.pattern0 = new RegExp('^[a-z]{2}$');
            }
          }
        });
});
</script>
</body>
</html>

测试效果如下

在这里插入图片描述

举报

相关推荐

0 条评论