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