Я пытаюсь объединить несколько рабочих шаблонов RegEx вместе (И их). Я не думаю, что делаю это правильно, кроме того, первое регулярное выражение может мешать следующим двум.
Пример слага (без специальных символов, кроме -
и _
):
(^[a-z0-9-_]+$)
Затем я хотел бы убедиться, что первый символ НЕ -
или _
:
(^[^-_])
Затем я хотел бы убедиться, что последний символ НЕ -
или _
:
([^-_]$)
Совпадение (хороший псевдоним):
- моя-новая_страница
- имя страницы
Несоответствие (плохой псевдоним)
- -моя-новая-страница
- моя-новая-страница_
- !@#$%^&*()
Если это RegExp можно упростить, и я более чем счастлив его использовать. Я пытаюсь создать проверку URL-адреса страницы, который может предоставить пользователь, я ищу, чтобы пользователь:
- Не запускается или и со специальным символом
- Начинайте и заканчивайте цифрой или буквой
- середина (не начало и конец) может включать
-
и_
Один из них, который у меня работает, я могу настроить для других персонажей по мере необходимости.
В конце концов, я применяю Annotation
к своей модели так:
[RegularExpression(
@"(^[a-z0-9-_]+$)?(^[^-_])?([^-_]$)",
ErrorMessage = "Alias is not valid")
]
Спасибо, и дайте мне знать, если я должен предоставить больше информации.