0

嗨,我想验证一个文本框,其中包含大量文本,但我不想在此文本框中允许电话号码、电子邮件 ID 或任何 URL。如果在文本框中也提到,我想将错误消息显示为电子邮件/电话/网址,并说这是不允许的。

使用 ng-Pattern,请告诉我使用什么正则表达式来允许这样做。

<div class="form-group">
    <div class="col-sm-6 col-md-8">
        <label for="inputjobDescription" class="control-label lightfont">Description</label>
        <div text-angular ng-model="job.Description" name="description" ng-pattern="/^((([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6}))\n?)*$/" ng-minlength="100" ta-min-text="100" required>
        </div>
        <p ng-show="jobform.description.$invalid && !jobform.description.$pristine && !jobform.description.$error.pattern" class="help-block">Can you be a bit more elaborate(atleast 100 characters) , please?<br> Don't write your emailID, telephone number or any URL.</p>
    </div>
</div>

我当前的 ng-pattern 如下

ng-pattern="/^((([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6}))\n?)*$/"
4

1 回答 1

0

这看起来不是一个正则表达式的好地方。正则表达式在这里可能太复杂了。

我建议在这里使用自定义验证器并以另一种方式尝试:

将给定文本与 3 个不同的正则表达式进行比较:

  1. 里面有电话号码吗?
  2. 里面有邮箱吗?
  3. 里面有没有超链接?

仅当所有这三个(更易于管理的)表达式都失败时,您才可以并返回表达式有效。在这种情况下,如果您知道我的意思,您可以使用来自随意谷歌搜索的三个标准正则表达式,而不是发明一些令人兴奋的超级正则表达式。

于 2016-01-06T23:17:26.793 回答