var pattern = /^0+$/;
Мое предположение заключается в следующем:Как вы читаете это регулярное выражение JavaScript?
«Посмотрите как в начале и в конце строки, и если есть образец одного или более нулями в начале и в конце, а затем вернуть этот шаблон «.
Я уверен, что это не так, хотя, потому что, когда я бегу выражение с этой строкой:
var string = "0000009000000";
Он приходит null
.
Так что это действительно говорит? И хотя я спрашиваю, что/как JavaScript рассматривает начало, середину и конец строки?
ОБНОВЛЕНИЕ # 1: Спасибо за ответы! Кажется, я понимаю это сейчас. Моя путаница возникла из-за того, что я визуализую строку как имеющую начало, середину и конец. Как это:
[начало] [средний] [конец]
Другими словами, для данной строки выше, следующие выражения работают, как я ожидаю их:
/^0+/;
возвращает "000000" (узор из одного или нескольких нулей в начале строки)
и
/0+$/
; возвращает «000000» (образец одного или несколько нулей в конце строки)
UPDATE # 2: я до-голосовавший все ответы на данный момент, потому что все они полезны, и я составил ответы в один большой один большой:
Учитывая следующий код JavaScript:
var string = "0000009000000";
var regExp = /^0+$/;
alert(regExp.exec(string));
Он читает, в частности, как это:
«Если точный символ (ы) с последующим^модификатор и которому предшествует модификатор $ в регулярном выражении не ОБЯЗАТЕЛЬНО сидят в первой позиции (-ях) строки И последней позиции (-ей) строки (т. е. они не являются единственным символом в строке), а затем возвращают null
. Else, верните символ (и). »
Другими словами, данная строка имеет шесть нулей« 000000 ». Это приводит к совпадению, потому что одна и та же группа символов« 0 »сидит в BOTH первые позиции (первого второй третий четвёртого пятый 6-я) и последние позиции (первый второй третий четвёртый пятый шестой) струны.
Однако в оригинале данной строки, есть шесть нулей, а затем девять, а затем шесть нулей («0000009000000»). Теперь шесть нулей в первых положениях строки (1, 2, 3, 4, 5, 6) НЕ являются точными шестью нулями, (8, 9, 10, 11, 12, 13). Следовательно,Возврат.
Re: update 2. Путь overthinking. Выражение просто говорит: «соответствовать началу строки, за которой следуют 1 или более 0, а затем конец строки». Не думайте о^и $ как о местах, но в качестве помощников для (несуществующего) начального символа и терминатора. – billjamesdev 2008-11-11 00:54:17
Может быть ... но задавая этот вопрос, я понял, что недостаточно просто знать определение - мне нужно «поддаться под капот» и узнать ПРИЧИН для определения - это алгоритм, который я хочу! :) – 2008-11-11 23:02:01