我如何禁止AngularJS正则表达式中的特定字符?

时间:2016-08-18 08:20:07

标签: javascript angularjs regex

我试过这个禁止字符

<input type="text" id="full_name" name="full_name" ng-pattern="/[^\@\-#\-&]/">

但它不起作用。

2 个答案:

答案 0 :(得分:3)

如果您想禁止@#&-个字符,请使用"/^[^@#&-]*$/"

<input type="text" id="full_name" name="full_name" ng-model="YOUR_MODEL" ng-pattern="/^[^@#&-]*$/" />

^[^@#&-]*$模式匹配:

  • ^ - 字符串开头
  • [^@#&-]* - 除否定字符类
  • 中定义的字符以外的0个或更多个字符
  • $ - 字符串结束。

注意:要创建所需的值,您可以添加required属性,或将*量词替换为+的模式(要求在至少1个(或更多)字符。

答案 1 :(得分:0)

以下是使用Why does "python setup.py sdist" create unwanted "PROJECT-egg.info" in project root directory?排除@,#,&amp;和 - 字符的ngPattern的工作示例:/^[^@#&-]+$/

angular
  .module('App', [])
  .controller('ExampleController', function($scope) {
      $scope.full_name = '';
  });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="App" ng-controller="ExampleController">
  <form name="form">
    <label for="full_name">This input is restricted by the current pattern: </label>
    <input type="text" id="full_name" name="full_name" ng-model="full_name" ng-pattern="/^[^@#&-]+$/" /><br>
    <hr>
    Input valid? = <code>{{form.full_name.$valid}}</code><br>
    Model value = <code>{{full_name}}</code>
  </form>
</div>