2013-05-09 7 views
6

Я поддерживаю какой-то старый код, когда дошел до головы. Я смущен этим шаблоном регулярного выражения: /^.*$/ (как указано в аргументе в textFieldValidation(this,'true',/^.*$/,'','').

интерпретировать это регулярное выражение как:

  • /^ = открыт шаблон
  • = соответствуют одному символу из любого значения (кроме EOL)
  • * = соответствует 0 или более раз
  • . $ = конец матча линии
  • /= кучность

Так что ... Я думаю, что это похлопывание tern соответствует всему, что означает, что функция не делает ничего, кроме циклов обработки отходов. Я прав?

+0

Моего программатор чувство покалывание, пять paramerts в яваскрипте функции, и один из них является ' 'true''. Это не может быть хорошо – NicoSantangelo

+0

@NicoSantangelo: ужасно –

ответ

5

Это соответствует одной строки текста.

Он не будет соответствовать многострочной строке, потому что ^ соответствует началу ввода, а $ соответствует концу ввода. Если есть новая строка (\n) или возврат каретки (\r) символы между ними - это терпит неудачу.

Например, 'foo'.match(/^.*$/)foo.

Но 'foo\nfoo'.match(/^.*$/)null.

+0

Обратите внимание, что он также не будет соответствовать строке, содержащей '\ r'. –

+0

спасибо, исправлено –

+0

Спасибо Oleg ... –

1

Да, вы совершенно правы. Это регулярное выражение соответствует любой строке, которая не содержит EOL (если dotall = false) или любая строка (если dotall = true)

+1

Я не думаю, что у JS есть точка. –

+0

Я не знаю, как regexp реализованы в JS, но на других языках dotall можно включить с помощью /../s или передать флаги функции компиляции – Maxim

+0

Да, JS не имеет флага/s. –

5

^ «Начиная с самого начала».
. "Matching ничего ..."
* "0 или более раз"
$ "до конца строки".

Да, вы правы, что соответствует пустому или чем-то.

И a handy little cheat sheet.

5

Regexp проверяет, что строка не содержит \n или \r. Точки не соответствуют новым строкам.

Примеры:

/^.*$/.test(""); // => true 
/^.*$/.test("aoeu"); // => true 
/^.*$/.test("aoeu\n"); // => false 
/^.*$/.test("\n"); // => false 
/^.*$/.test("aoeu\nfoo"); // => false 
/^.*$/.test("\nfoo"); // => false 
+0

Спасибо Флориан ... –

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