#javascript #jquery
#javascript #jquery
Вопрос:
Спасибо, что нашли время ответить на мой вопрос.
Я хочу проверить, содержит ли строка ровно 7 символов и начинается ли она с «1234». Как мне это сделать?
Я знаю о string.substring, но не уверен, следует ли мне использовать регулярное выражение или есть какая-либо другая альтернатива. Заранее спасибо!
Комментарии:
1. Ровно 7 символов и начинается с «1234567»? Просто!
if (str == "1234567") ...
Ответ №1:
Простое регулярное выражение:
var isMatch = /^1234...$/.test(myString);
Или:
var isMatch = myString.length == 7 amp;amp; myString.indexOf("1234") == 0;
Редактировать: Или:
var isMatch = myString.length == 7 amp;amp; myString.substr(0, 4) == "1234";
Комментарии:
1. Спасибо, Джилли. Я сделаю ваш ответ ответом на мои вопросы через 11 минут. Еще раз спасибо!
2.
substring
и проверка на равенство предпочтительнееindexOf
, поскольку ей не нужно искать по всей строке в случае пропуска. Кроме того, ИМХО, хороший ответ должен препятствовать использованию регулярного выражения для чего-то такого простого.3. @Jon — Справедливо, я добавил
.substr()
версию. Но лично я люблю регулярные выражения — такие точные и аккуратные.4. Осторожно, indexOf не поддерживается в браузере IE8.
5. @PedroLopes — Вы думаете о
Array.prototype.indexOf()
. Но это строка, иString.prototype.indexOf()
она существует по крайней мере с IE4.