Если у меня есть строка: «354-567-3425 | Джон Доу», как я могу узнать, сколько символов после «|» символ? Я погуглил, и все, что я нашел, было методом javascript indexOf()
. Это сработало бы, если бы я пытался найти количество символов ДО «|», но я не знаю, как запустить обратный отсчет indexOf()
, если вы понимаете, о чем я. Я уверен, что есть простое решение. Любая помощь приветствуется.
Как заставить indexof() считаться с конца строки
comment
Мне нравятся все эти ответы. Это показывает вам, что в программировании, независимо от того, что вы хотите сделать, всегда есть более одного способа сделать это.
- person Katie Kilian   schedule 15.10.2014
Ответы (6)
Скажи, как рев
var str = '354-567-3425 | John Doe';
var indexFromLast = str.length - str.indexOf('|');
indexFromLast
имеет индекс с конца строки.
person
Mritunjay
schedule
15.10.2014
Вы можете использовать lastIndexOf()
вместо indexOf()
Подробная информация о MDN
person
Stephen Thomas
schedule
15.10.2014
попробуйте этот фрагмент кода, он должен работать.
var yourString = "354-567-3425 | John Doe";
var index = yourString.indexOf("|");
var lengthYouWant = yourString.slice(index + 1).length;
person
Prateek Jain
schedule
15.10.2014
Вы действительно должны заканчивать свои утверждения точкой с запятой. Это не является строго необходимым, правда, но позволяет избежать уродливого класса ошибок.
- person Katie Kilian; 15.10.2014
Попробуй это:
var str = "354-567-3425 | John Doe";
var charsAfter = str.length - str.indexOf("|") - 1;
- 1
должен двигаться дальше символа |
.
person
Katie Kilian
schedule
15.10.2014
Если ваше значение всегда будет иметь один разделитель |
, вы можете найти общее количество символов после |
следующим образом:
'354-567-3425 | John Doe'.split('|')[1].length
Вот еще один способ сделать это, если число |
не является обычным:
var data = '354-567-3425 | John Doe | 666 Elm Street';
var lastIndexPos = data.lastIndexOf('|');
console.log(data.substr(lastIndexPos + 1).length);
person
DeeDee
schedule
15.10.2014
Я использую что-то вроде следующего:
var myString= '354-567-3425 | John Doe';
myString.substr(myString.indexOf('|') + 1)
person
tamak
schedule
15.10.2014