1

我试图有一个文本区域,其中包含一个使用 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

4

1 回答 1

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 运行良好(添加/删除电子邮件)。所以问题可能出在正则表达式中......

于 2015-12-10T15:02:59.213 回答