Как проверить строку ввода без пробелов и специальных символов, кроме двух специальных символов (то есть & и С) - PullRequest
0 голосов
/ 20 октября 2010

Я пытаюсь проверить input string (который можно скопировать и вставить в текстовое поле). Введенный ввод должен содержать один или несколько alphabetic characters, цифры и еще два специальных символа в виде (& и Ñ), но без пробелов.

Примечание: должны присутствовать буквенные символы, но цифры и эти два специальных символа могут присутствовать или не отображаться для создания правильного ввода.

Я использую Jquery для проверки на стороне клиента.

  • Альтернативный подход:

    Если кто-нибудь может помочь мне, как мы можем обнаружить появление каких-либо специальных символов и пробелов, кроме '&' и 'Ñ' в любой входной строке, то моя проблема также может быть решена.

Ответы [ 3 ]

1 голос
/ 20 октября 2010

Обнаружение того, что не разрешено в этой ситуации, не будет хорошей идеей. Вы упомянули, что обнаружение специальных символов, отличных от этих двух (С, &) и пробела, будет приемлемым. А как насчет вкладок? Как насчет символов новой строки? А как насчет нелатинских символов? Если вы уверены, что этого никогда не произойдет, продолжайте обнаруживать специальные символы. Если в следующем регулярном выражении найдено совпадение, то ввод неверен:

[\ ~ \ @ # \ $ \% \ ^ \ & * () _ + \ = - [] {} \\ | \ "\" \; \: \ / \ ?.> \, \ < `]

Решение, которое предоставлено выше, хорошо, что оно проверяет, были ли использованы правильные символы, однако оно будет совпадать, даже если используются какие-либо из указанных выше специальных символов. Я думаю, это не то, что вы хотите. Вот модифицированная версия:

^ (([A-Za-Z] + [^ A-Za-г \ д & ЦТС] ) | ([^ A-Za-г \ д & ЦТС] [A-Za-Z] +) | ([^ A-Za-г \ d & ЦТС] [A-Za-Z] + [^ A-Za-г \ d & ЦТС] )) $

Если это соответствует, то ввод действителен, иначе это не так. Это, вероятно, не самый эффективный регулярное выражение, но оно должно работать.

Кстати, некоторый пример ввода текста действительно поможет!


Версия без заглавных букв:

^ (([AZ] + [^ AZ \ d & ЦТС] ) | ([^ AZ \ d & ЦТС] [AZ] +) | ([^ AZ \ d & ЦТС] [AZ] + [^ AZ \ d & ЦТС] )) $

0 голосов
/ 21 октября 2010

На самом деле я закончил проверку с Jquery alphanumeric плагином

т.е. "$('#txtId').alphanumeric({ allow: "&Ñ" });".

Объяснение: Это разрешает все alpha numeric символов и ограничивает все остальные символы (специальные символы были адресованы). В разрешающей части я могу разместить допустимые специальные символы.

0 голосов
/ 20 октября 2010

Если вы хотите разрешить использование только заглавных букв, цифр и & или Ñ в качестве допустимых символов, используйте

^(?=.*[A-Z])[A-Z\d&Ñ]*$

подробное регулярное выражение:

^                   # anchor the search at the start of the string
(?=.*[A-Z])         # assert that there is at least one letter A-Z in the string
[A-Z\d&Ñ]*       # match any number of allowed characters
$                   # anchor the search at the end of the string

Возможно, вы захотите установить минимальную длину, так как в настоящее время строка A будет допустимым вводом. Например, ^(?=.*[A-Z])[A-Z\d&Ñ]{8,}$ обеспечит минимальную длину 8.

Если вы хотите регулярное выражение, которое будет соответствовать, если ввод содержит недопустимый символ, вы можете использовать

[^A-Z\d&Ñ]

Но тогда вам понадобится второе регулярное выражение, чтобы также убедиться, что в ваших входных данных есть хотя бы одна буква. Я бы сказал, что первый подход более читабелен, даже в JavaScript, где вы не можете использовать подробные / прокомментированные регулярные выражения.

...