【问题标题】:AngularJS textarea ng-pattern with multiple matches具有多个匹配项的 AngularJS textarea ng-pattern
【发布时间】:2015-12-09 20:58:01
【问题描述】:

我正在尝试创建一个 textarea,其中包含使用 ng-pattern 和 ng-list 验证的电子邮件列表。

我已经在各种测试器中测试了我的正则表达式,它似乎可以正常工作,但在我的应用程序中却没有。我不确定问题是正则表达式,还是 ng-pattern 和 ng-list 之间的干扰。

我为列表接收的 JSON 数据是数组格式:

$scope.mainList.EmailAddresses = ["user@emailaddress.com", "user2@altemail.net"];

我的 HTML 代码:

<textarea class="text-list-area" ng-model="mainList.EmailAddresses" ng-pattern="/^((([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6}))\n?)*$/" ng-list="&#10;" ng-trim="false"></textarea>

textarea 用新行分隔每封电子邮件,如下所示:

user@emailaddress.com
user2@altemail.net

我在 plunker 中的问题示例(感谢 Beaver 的创建): http://plnkr.co/edit/T17TTd5otnWWXOp2gZ94?p=preview

【问题讨论】:

    标签: angularjs regex textarea email-validation ng-pattern


    【解决方案1】:

    这个 jsFiddle 能帮到你吗?

    https://jsfiddle.net/beaver71/cggLyL09/27/

    我在您的代码中添加了一些关于验证错误的反馈,如下所示:

    <span ng-show="myForm.email_field.$error.pattern">Not a valid email!</span>
    

    还有一个更有效的Plunker:

    http://plnkr.co/edit/T17TTd5otnWWXOp2gZ94?p=preview

    在此示例中,没有您的 ngPattern 的 textarea 运行良好(添加/删除电子邮件)。所以问题可能出在正则表达式中......

    【讨论】:

    • 你的小提琴很好地得到了我需要的结果,但它让我意识到我在我的问题中遗漏了一些重要信息,即我的列表变量是一个数组。更新我的问题包括那个问题。
    猜你喜欢
    • 1970-01-01
    • 2017-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-16
    • 2013-12-16
    • 1970-01-01
    • 2016-10-14
    相关资源
    最近更新 更多