angularjs ng-pattern指令的意外行为

时间:2013-09-15 19:55:41

标签: angularjs angularjs-directive

我想使用ng-pattern验证文本字段。该字段应接受所有字符但空白。

我写了以下html:

<input name="username" ng-model="username" ng-pattern='/^[\S]+$/' type="text">

当我评估时

{{username.$valid}}

忽略开始和尾随空格。它将字符串“d”(不带引号)计算为有效。

有什么问题? 提前谢谢!

2 个答案:

答案 0 :(得分:0)

我认为这是关于你的模式尝试如下;

/^[\S]*$/

答案 1 :(得分:0)

我认为你无法从输入中删除空间包装器。

您可以尝试使用ng-trim='false'(&gt; 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