найти регулярное выражение для проверки правильности ввода терминов (ключевых слов) - PullRequest
0 голосов
/ 14 февраля 2011

к сожалению, я беден в регулярных выражениях!Можете ли вы указать мне написать регулярное выражение в javascript, которое может определить мое поле ввода терминов.пользователь должен ввести термины в следующем формате:

#(all alphanumeric chars + blank + dash + quotation )

, например:

#keyword1#key word2#keyword3#key-word4#key'word5

, и эти данные должны быть недопустимыми:

#####
##keyword1#key2#
# #keyword
#!%^&

Ответы [ 2 ]

1 голос
/ 14 февраля 2011

Как вы написали, термин определяется как:

/#[a-zA-Z0-9 '-]+/

Повторите этот шаблон и заставьте его содержать начало и конец строки с ^ и $.

/^(#[a-zA-Z0-9 '-]+)+$/
0 голосов
/ 14 февраля 2011
/#[a-zA-Z0-9][a-zA-Z0-9 '-]+/

Когда вы сказали, что "# #keyword" должно быть недействительным, я предположил, что вы имеете в виду, что "#" должно быть недопустимым, а "#keyword" должно быть извлечено из этой строки. Первый «ящик» означает, что ключевое слово всегда будет начинаться со строчной буквы, заглавной буквы или цифры. Если это слишком ограничительно, и вы хотите разрешить, например, "# -ключевое слово", просто добавьте тире перед первой квадратной скобкой, например:

/#[a-zA-Z0-9-][a-zA-Z0-9 '-]+/

И чтобы вернуть массив результатов в javascript, примените его к строке, используя модификатор «global» («g» после второй косой черты):

arrayOfKeywords = keywordString.match(/#[a-zA-Z0-9-][a-zA-Z0-9 '-]+/g);

Возможно, вы захотите увидеть этот код на моей тестовой странице . Regular-expressions.info - полезный сайт, чтобы узнать больше о регулярных выражениях. У них также есть интерактивная страница для проверки регулярных выражений , которая может быть полезна при игре.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...