Angular JS - 具有自定义验证规则的字符串模式
Angular JS - string patterns with custom validation rules
假设我有一个指定预先存在的验证器的输入
ng-pattern="stringValidator"
我想在不创建全新模式的情况下扩展或自定义此模式,有没有办法内联?换句话说,我可以将验证正则表达式直接输入到标签声明或类似的东西中吗?
当前标签声明:
"stringValidator"模式是在此代码域外部定义的,它暗示了一个我需要覆盖的不受欢迎的规则。我不能编辑"stringValidator",也不能将自定义规则添加到与"stringValidator"相同的代码文件中。
<input type="text" id="txt-foo" placeholder="" name=""
class="form-control"
ng-model="txtName" ng-maxlength="255"
ng-pattern="stringValidator"
autocomplete="off" />
我想做这样的事情:
<input type="text" id="txt-foo" placeholder="" name=""
class="form-control"
ng-model="txtName" ng-maxlength="255"
ng-pattern="/^[^%'[']<>"%;&()]+$/"
autocomplete="off" />
谢谢。
它应该按预期工作,但是您的模式将被浏览器破坏,因为由于模式中存在"
,您的模式文本将被提前终止,并且值也包含在"
中。因此,将模式包装在单引号或转义引号中,并在属性值中带有"
(当浏览器呈现时,它将自动取消转义)。
即ng-pattern='/^[^%'[']<>"%;&()]+$/'
或
ng-pattern="/^[^%'[']<>"%;&()]+$/"
请记住在输入中使用 name,因为如果没有控件的名称,表单控制器将无法将属性与其实例相关联。
工作演示
input.ng-invalid {
border-width: 2px 5px 2px 2px;
border-style: solid;
border-color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app>
<form name="form">
<input type="text" id="txt-foo" placeholder="" class="form-control" ng-model="txtName" ng-maxlength="255" ng-pattern="/^[^%'[']<>"%;&()]+$/" autocomplete="off" />
</form>
</div>
相关文章:
- 如何在JavaScript中将字符串转换为函数引用
- jQuery中是否内置了任何字符串格式化函数
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- ng打开空字符串
- 正则表达式在字符串中找到base64
- 如何将字符串值从php页面发送到java脚本页面
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- 字符串在将其传递给另一个活动Android JavaScript时读取Null
- 对id以某个字符串开头的元素进行计数
- Javascript逻辑运算符和字符串/数字
- 反向字符串比较
- 如何有效地将游戏数据存储在URL查询字符串中
- Angular JS - 具有自定义验证规则的字符串模式
- 如何使用正则表达式从字符串中提取CSS规则
- 如何在javascript中拆分具有多个规则的字符串
- 使用正则表达式从字符串中捕获具有特定规则的所有匹配项
- 正则表达式,以满足具有特定规则集的字符串形式X7O9-0qiLA0
- IIS发包规则,以匹配文件名中不存在的子字符串
- 用于字符串组合和序列规则的正则表达式角2
- 从字符串jQuery中获取CSS属性/规则