jquery проверяет, начинается ли строка с 1234

#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.