我想使用 ng-pattern 验证文本字段。该字段应接受除空格以外的所有字符。
我写了以下html:
<input name="username" ng-model="username" ng-pattern='/^[\S]+$/' type="text">
当我评估
{{username.$valid}}
开头和结尾的空格被忽略。它将字符串“ d”(不带引号)评估为有效。
问题是什么?提前致谢!
我想使用 ng-pattern 验证文本字段。该字段应接受除空格以外的所有字符。
我写了以下html:
<input name="username" ng-model="username" ng-pattern='/^[\S]+$/' type="text">
当我评估
{{username.$valid}}
开头和结尾的空格被忽略。它将字符串“ d”(不带引号)评估为有效。
问题是什么?提前致谢!
我认为您不能从输入中删除空间包装器。
您可以尝试使用ng-trim='false'
(> ver 1.1.1)
防止用户输入空格的其他替代方法。
HTML
<input ng-model='name' ng-trim='false' />
JS
var app = angular.module('angularjs-starter', []);
app.controller('MainCtrl', function($scope,$timeout) {
$scope.name = 'World';
$scope.$watch('name', function() {
$scope.name = $scope.name.replace(/\s+/g,'');
});
});
看DEMO
我认为这与您的模式有关,请尝试如下;
/^[\S]*$/