如何使用正则表达式在angularjs中允许字母数字和某些特殊字符

时间:2018-11-16 06:20:32

标签: javascript angularjs

这个问题可能很简单,但是在尝试使用正则表达式模式时看起来很复杂。

我有一个文本区域,我正在尝试允许字母数字字符和仅5个某些特殊字符,例如. , ' " :

键入时应禁用其他特殊字符。

我尝试从angularjs使用ng-pattern,但是当我开始输入除允许的字符以外的特殊字符时,不会将其禁用。

<textarea rows="5" cols="50" ng-pattern="/^[a-zA-Z0-9.,:'"]*$/">

主要问题是当我尝试允许' "这两个特殊字符时,都面临ng-pattern中的语法问题。

我期望在ng-pattern中仅使用正则表达式的简单解决方案。

我在某处失踪,有人可以帮忙吗?

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<textarea rows="5" cols="50" ng-pattern="/^[a-zA-Z0-9.,:'"]*$/">
  
</textarea>

1 个答案:

答案 0 :(得分:0)

您需要对模式内的双引号字符进行html编码,如下所示:

ng-pattern="/^[a-zA-Z0-9.,:&apos;&quot;]*$/"

当前模式到达第一个双引号时结束。

为了安全起见,还对单引号进行html编码。

编辑,我犯了一个错误,现在应该可以了。