RegExp("^(921|931)$\\d{5,5}$").test("93111111");
Как я могу совместить строку, чтобы начать с 921 или 931, следующих с пятью любыми цифрами?Regexp Начать с Javascript
RegExp("^(921|931)$\\d{5,5}$").test("93111111");
Как я могу совместить строку, чтобы начать с 921 или 931, следующих с пятью любыми цифрами?Regexp Начать с Javascript
TL; др: использовать регулярное выражение буквальным следующим образом:
var re = /^(9[23]1)\d{5}$/;
alert(re.test("93111111"));
Пояснение:
Во-первых, удалить первый $
:
RegExp("^(921|931)\\d{5,5}$").test("93111111");
$
соответствует только конец строки, поэтому ваше регулярное выражение никогда не будет соответствовать, когда у вас есть один после (921|931)
. Кроме того, обратите внимание, что вам нужно удвоить ваш \
, потому что он находится в кавычках, как объясняется в комментариях.
Вы можете реально упростить дальнейшее упрощая {5,5}
к {5}
:
RegExp("^(921|931)\\d{5}$").test("93111111");
Даже лучше, используйте регулярное выражение буквальным и упростить (921|931)
к (9[23]1)
:
var re = /^(9[23]1)\d{5}$/;
alert(re.test("93111111"));
Это, безусловно, самый чистый, самый простой для чтения.
, если вы используете свое регулярное выражение в '' ', вам нужно снова сбрасывать обратную косую черту. –
@ AvinashRaj хорошая точка, пропустили это. Спасибо. –
Нет, вам просто нужны две обратные косые черты:' \\ d'. вы показываете неуклюжие версии с использованием конструктора regexp и '{5,5}' first? Просто покажите свое окончательное решение. Наконец, вам не нужны скобки вокруг '9 [23] 1'. –
Вы близко, но у вас есть ошибка. Значение $
означает конец строки. Это означает, что у вас не может быть более одного, поскольку строка имеет только один конец. Кроме того, {5,5}
можно упростить до {5}
. Попробуйте:
RegExp("^(921|931)\\d{5}$").test("93111111");
Это означает:
Забыл вставить лишние \. Он обновлен. И да, я тестировал его, это называется ошибкой копирования/вставки. Это то, что я получаю для написания в regex101 и вставки его здесь, я думаю ... – dman2306
/^9[23]1\d{5}/.test('93111111 ') –
Я предлагаю вставить это в инструментарий regexp, например https://regex101.com/. Вы увидите обозначение справа, «$ assert position в конце строки». Подумайте, почему вы положили этот $ там и попробуйте удалить его. В принципе, вам нужно научиться отлаживать собственные регулярные выражения. Это не очень хорошее решение для публикации в SO каждый раз, когда вы сталкиваетесь с небольшой проблемой. –
Должен ли я задаваться вопросом, что с downvotes? Это кажется правильным вопросом. Базовый, да, но тем не менее действительный. – dman2306