Разница между (. | [\ R \ n]) {1,1500} и ^. {1,1500} $ - PullRequest
1 голос
/ 20 июля 2010

В чем разница между двумя регулярными выражениями

(.|[\r\n]){1,1500}

^.{1,1500}$

Ответы [ 5 ]

4 голосов
/ 20 июля 2010

Первый соответствует до 1500 символов, а второй (при условии, что вы не установили определенные параметры регулярных выражений) соответствует a первый одна строка до 1500символы без перевода строки .

2 голосов
/ 20 июля 2010

Первое совпадение выражения некоторые <= 1500 <strong>символов файла (или другого источника).
Второе выражение соответствует a всей строке с charsNumber <= 1500. </p>

. соответствует любому символу , кроме \ n новой строки .

1 голос
/ 20 июля 2010

Если это для использования в RegularExpressionValidator, вы, вероятно, захотите использовать это регулярное выражение:

^[\s\S]{1,1500}$

Это связано с тем, что регулярное выражение может выполняться либо на сервере (.NET), либо на клиенте (JavaScript). В регулярных выражениях .NET вы можете использовать флаг RegexOptions.Singleline (или его встроенный эквивалент, (?s)) для сопоставления точек с новой строкой, но в JavaScript такого механизма нет.

[\s\S] соответствует любому символу пробела или чему-либо, что не символ пробела - другими словами, что угодно. Это самая популярная идиома для сопоставления чего угодно, включая перевод строки в JavaScript; это намного, намного более эффективно, чем основанные на чередовании подходы, такие как (.|\n).

Обратите внимание, что вам все равно нужно будет использовать RequiredFieldValidator, если вы не хотите, чтобы пользователь оставлял текстовое поле пустым.

1 голос
/ 20 июля 2010

Второй соответствует первым 1500 символам строки, ЕСЛИ строка содержит 1500 символов или менее

1 голос
/ 20 июля 2010

. не соответствует новым строкам.

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