ng-pattern для запрета адресов электронной почты, URL и телефонов

Привет, я хочу проверить текстовое поле, в котором будет много текста, но я не хочу разрешать номера телефонов, адреса электронной почты или любые URL-адреса в этом текстовом поле. Я хочу показать сообщение об ошибке в виде электронного письма / телефона / 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="/^((([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6}))\n?)*$/"

1 ответ

Это не похоже на хорошее место для регулярных выражений. Регулярное выражение, вероятно, будет слишком сложным.

Я бы предложил использовать здесь собственный валидатор и попробовать его наоборот:

Сравните данный текст с 3 различными регулярными выражениями:

  1. Есть ли в нем номер телефона?
  2. Есть ли в нем электронная почта?
  3. Есть ли в нем гиперссылка?

Только если ВСЕ эти три (лучше управляемые) выражения НЕУДАЧИВАЮТСЯ, вы в порядке и вернете, что выражение допустимо. В этом случае вы можете использовать три стандартных регулярных выражения из случайного поиска в Google вместо того, чтобы придумывать какой-то потрясающий супер-регулярный выражение, если вы понимаете, о чем я.

Другие вопросы по тегам