【发布时间】:2026-01-10 08:55:01
【问题描述】:
我需要为输入字段创建掩码,用户只能在模板中输入符号:“01ABC2345-67-89” - 两位,然后是三个字符,然后是四位,然后是“-”(或者如果他输入数字, "-" 自动添加),然后是两位数,"-" 和两位数。 有我的代码 - 我的面具过滤器只有数字。何为我的目标创建正则表达式?
html:
<html ng-app="app">
<head>
<meta charset="UTF-8">
<title>serialNumber mask</title>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.6/angular.min.js"></script>
<script type="text/javascript" src="main.js"></script>
</head>
<body ng-controller="myCtrl">
<input type="text" id="serialNumber" ng-model="model.serialNumber">
<br>
<label for="serialNumber">format: 01ABC2345-67-89</label>
<br><br>
{{model.serialNumber}}
</body>
</html>
和js:
var app = angular.module('app', []);
app.controller('myCtrl', function ($scope) {
$scope.model = {};
$scope.$watch('model.serialNumber', function (newValue, oldValue) {
console.log('newValue', newValue);
var regex = new RegExp('^\\d+$');
if (newValue) {
if (!regex.test(newValue)) {
$scope.model.serialNumber = oldValue;
}
}
});
});
【问题讨论】:
标签: javascript angularjs validation input masking