#javascript #regex
#javascript #регулярное выражение
Вопрос:
Я новичок в регулярных выражениях.
Следующий код работает как ожидалось, выводя сначала «true», а затем «false», обратную косую черту перед точкой, экранирующей ее:
var pattern = new RegExp(/./);
document.write(pattern.test("."));
document.write(pattern.test("a"));
Но почему следующее выводит «false»:
var pattern = new RegExp(/b./);
document.write(pattern.test("."));
Точка, в конце концов, находится в начале строки.
Ответ №1:
Вы хотите попробовать использовать ^
—
/^./
Если у вас есть
/b./
оно соответствует .
‘s в Hello. How are you.
Комментарии:
1. Думаю, теперь я понял. Я только что прочитал описание различия между словом и несловесными символами, и я предполагаю, что строка должна начинаться с символа word, чтобы b воспринимал ее как слово.
Ответ №2:
Это не работает, потому что для того, чтобы иметь разрыв слова, вам сначала нужно иметь слово.
Используя b
, это сработало бы:
var pattern = new RegExp(/ab./);
document.write(pattern.test("a."));
Если все, что вы делаете, это тестируете первый символ, вы можете сделать это без регулярного выражения, если хотите.
".".charAt(0) === "."