AngularJS 中为 input 添加字母大小写不敏感正则表达式匹配验证

代码与范例:

$scope.domainList = 'domain1.com|domain2.com';

$scope.isEmailValid = function () {
    var domains = $scope.domainList;
    // 第二个参数用于设定大小写不敏感
    var re = new RegExp("^[a-zA-Z0-9._%+-]+@(" + domains + ")$", "i");
    // 获取 input 关联的 ng-Model 的文本内容
    var email = $scope.userLoginForm.userEmail.$modelValue;
    // 如果尚未输入任何内容,则默认通过验证,否则测试匹配正则表达式
    return re.test(email) || !$scope.userLoginForm.userEmail.$dirty;
                
}

说明:虽然包括 JavaScript 在内的正则表达式实现支持大小写不敏感匹配(i),但 HTML5 中,input 元素的 pattern 属性并不支持该标记位。为此,要实现该功能,必须借助额外的逻辑。如需显示错误信息,可为错误信息添加 ng-show=‘!isEmailValid’ 属性。

《AngularJS 中为 input 添加字母大小写不敏感正则表达式匹配验证》有2个想法

  1. 我着手搞项目的前后端分离,Angular跟VUE之间纠结了下,最后用了VUE,数据跟dom绑定 习惯了写起来真爽 代码也简洁。顺着S1摸过来的,最近在忙什么呢

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注