2010-10-20 4 views
0

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

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

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

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

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

+0

Какой язык? – kennytm

+0

Я в замешательстве прочитал ваш вопрос еще раз: в названии, которое вы говорите, вы хотите проверить, содержит ли строка специальные символы * кроме * '&' и 'Ñ'; в тексте вопроса звучит так, что эти два являются единственными допустимыми специальными символами - что это? –

+0

Я использую Java-скрипт и JQuery для проверки на входах на стороне клиента. – Biki

ответ

0

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

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

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

0

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

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

Verbose регулярное выражение:

^     # 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, где вы не можете использовать подробные/комментарии регулярных выражений.

+0

Спасибо, Тим, но это выглядит немного сложно. Возможно ли, чтобы вы помогли мне с альтернативным подходом, о котором я говорил выше? то есть: «как мы можем обнаружить появление каких-либо специальных символов и пробелов, кроме« & »и« С »в любой входной строке». – Biki

+0

Не сложнее, чем ваши правила :) –

+0

Альтернативный подход: «как мы можем обнаружить появление каких-либо специальных символов и пробелов, кроме« & »и« С »в любой входной строке». – Biki

1

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

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

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

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

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

Btw, некоторые примеры ввода текста действительно помогут!


Версия без прописных букв:

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

+0

Спасибо Uphill. Я закончил с другими сценариями, просто нужно последнее. Моя строка ввода позволяет только буквенно-цифровые (от А до Z от 0 до 9) и два специальных символа, например «&» и «С». Также не должно быть пробелов между ними. – Biki

+0

Еще лучше! Регулярное выражение должно быть:^(([AZ] + [^ AZ \ d & С]) | ([^ AZ \ d & С] [AZ] +) | ([^ AZ \ d & С] [AZ] + [^ AZ \ d & С])) $ –

+0

^[A-Z0-9 & Ñ] + $ - правильный reg exp, который я ищу: Regex для проверки только столичных алфавитов, двух специальных символов (таких как & и С) и без пробелов между ними. В любом случае спасибо за терпение, чтобы обсудить плюсы и минусы. – Biki

Смежные вопросы