Получение элементов / символов справа от другого символа

#javascript

#javascript

Вопрос:

Я пытаюсь извлечь данные справа от ‘:’ или использовать ‘:’ в качестве отправной точки для последующего получения данных. Ищу правильные элементы синтаксического анализа для этого.

 var test = 'type:input';
  

charAt выдает мне местоположение ‘:’, но как мне затем получить ‘input’ из var test?

Ответ №1:

Вы можете использовать split :

 var testAfter = test.split(':')[1];
  

или substr с indexOf

 var testAfter = test.substr(test.indexOf(':') 1);
  

или slice

 var testAfter = test.slice(test.indexOf(':') 1);
  

или match

 var testAfter = test.match(/(:)(. $)/).pop();
  

или replace

 var testAfter = test.replace(/^. :/,'');
  

если вы хотите свободно использовать любой разделитель, это расширение строки может выполнить эту работу:

 String.prototype.dataAfter = String.prototype.dataAfter ||
   function(delim){
     return this.split(delim)[1];
   };
//usage
var testAfter = test.dataAfter(':');
var test2 = 'type#input';
var testAfter = test2.dataAfter('#');
  

Комментарии:

1. Спасибо. Что, если бы я хотел использовать ‘:’ в качестве разделителя, есть ли способ использовать var test2 = test[1], ‘:’; или какой-либо тип объявления разделителя?

2. Можете ли вы быть более конкретным? Во всех примерах из моего ответа ‘:’ является разделителем. Или вы имеете в виду что-то другое?

Ответ №2:

Как насчет substr?

  var test2 = test.substr(test.indexOf(':') 1); // until end