Легкое выражение RegEx для тех, кто знает регулярные выражения - PullRequest
0 голосов
/ 26 апреля 2011

Я очень мало знаю о регулярных выражениях, так что это оказалось очень сложным для меня.

У меня есть форма, в которой мне нужно убедиться, что она содержит только AZ или az или 1-0 и несколько других "одобренных"символы и '' (пробел).Когда изложено, я хочу только разрешить:

`abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 /:;,.-()`  

Из другого вопроса stackoverflow я нашел это регулярное выражение: ^((?:[A-Za-z0-9-'.,@:?!()$#/\\]+|&[^#])*&?)$, но я думаю, что он допускает слишком много специальных символов, а также в примечанияхКто-то прокомментировал c #, так что я не уверен, применимо ли это к тому способу, которым я пытаюсь его использовать.Я использую Coldfusion, JQuery и Javascript.Я на самом деле использую плагин jQuery, для которого пытаюсь добавить правило проверки (плагин http://bassistance.de/jquery-plugins/jquery-plugin-validation/).

Пример неправильной записи в форме: MC & I Enterprise, но MC/ I приемлемо

Может ли кто-нибудь помочь?

Ответы [ 3 ]

3 голосов
/ 26 апреля 2011

Чтобы начать практиковать с регулярными выражениями, вы можете рассмотреть возможность загрузки тренера регулярных выражений: http://weitz.de/regex-coach/ это бесплатная программа, которая объясняет регулярные выражения и позволяет увидеть, как работает разбор регулярных выражений.

Вы можете начать использовать сокращение \w: оно соответствует любому так называемому «символу слова», то есть A-Z, a-z, 0-9 и _ (но оно не включает какие-либо пробелы); Затем вы можете добавить все необходимые символы в класс символов.

Если "_" (подчеркивание) находится в списке разрешенных символов, вы можете использовать это регулярное выражение (которое допускает пустую строку):

^[\w ()/:;,.-]*$

Или, если вы хотите проверять только непустые строки, вы можете использовать эту (которая имеет знак + вместо *, что означает соответственно «соответствовать одному или нескольким символам» и «соответствовать нулю или более символов») :

^[\w ()/:;,.-]+$

Если «_» (подчеркивание) - это , а не в списке разрешенных символов, то вы должны использовать интервалы явно:

^[a-zA-Z\d ()/:;,.-]*$

или

^[a-zA-Z\d ()/:;,.-]+$
2 голосов
/ 26 апреля 2011

Следующие действия должны выполняться:

'^[a-zA-Z0-9\ /:;,\.\-\(\)]*$'

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

1 голос
/ 26 апреля 2011

Вы можете конвертировать список утвержденных символов в класс символов следующим образом:

^[a-zA-Z0-9 /:;,.\-()]+$

Это должно совпадать, только если полный текст содержит только символы в вашем списке разрешенных (более сложные правила, например, без пробелов в конце и т. Д., Могут потребовать более регулярного выражения.

Этот сайт является чрезвычайно полезным введением в регулярные выражения.

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