ng模式来禁止电子邮件、url和电话号码

ng-pattern to dissallow email, url and telephone numbers

本文关键字:url 电话号码 电子邮件 模式 禁止 ng      更新时间:2023-09-26

嗨,我想验证一个文本角度框,它会有很多文本,但我不想在这个文本框中允许电话号码、电子邮件ID或任何URL。如果在文本框中也提到,我想将错误消息显示为电子邮件/电话/url,并表示这是不允许的。

使用ng模式,请告诉我使用什么正则表达式来实现这一点。

<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模式如下

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

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

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

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

  1. 里面有电话号码吗
  2. 里面有电子邮件吗
  3. 里面有超链接吗

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