Подтвердить что ты не робот

Вырезать часть строки

Скажем, у меня есть строка

"hello is it me you're looking for"

Я хочу вырезать часть этой строки и вернуть новую строку, что-то вроде

s = string.cut(0,3);

s теперь будет равно:

"lo is it me you're looking for"

EDIT: может быть не от 0 до 3. Это может быть от 5 до 7.

s = string.cut(5,7);

вернет

"hellos it me you're looking for"
4b9b3361

Ответ 1

Ты почти там. Вы хотите:

http://www.w3schools.com/jsref/jsref_substr.asp

Итак, в вашем примере:

Var string = "hello is it me you're looking for";
s = string.substr(3);

Как только предоставление начала (первый arg) берет из этого индекса в конец строки.

Обновить, как насчет чего-то типа:

function cut(str, cutStart, cutEnd){
  return str.substr(0,cutStart) + str.substr(cutEnd+1);
}

Ответ 2

Использование

substring

функция

Возвращает подмножество строки между один индекс и другой, или через конец строки.

substring(indexA, [indexB]);

indexA

An integer between 0 and one less than the length of the string. 

IndexB  (необязательно) Целое число от 0 до длины строки.

Подстрока

извлекает символы из indexA до, но не включая indexB. В частности:

* If indexA equals indexB, substring returns an empty string.
* If indexB is omitted, substring extracts characters to the end 
  of the string.
* If either argument is less than 0 or is NaN, it is treated as if 
  it were 0.
* If either argument is greater than stringName.length, it is treated as 
  if it were stringName.length.

Если indexA больше, чем indexB, то эффект подстроки выглядит так, как если бы оба аргумента были заменены; например, str.substring(1, 0) == str.substring(0, 1).

Ответ 3

s = string.cut(5,7);

Я бы предпочел сделать это как отдельную функцию, но если вы действительно хотите иметь возможность вызывать ее прямо на String из прототипа:

String.prototype.cut= function(i0, i1) {
    return this.substring(0, i0)+this.substring(i1);
}

Ответ 4

string.substring() - это то, что вы хотите.

Ответ 5

Некоторые другие более современные альтернативы:

  • Разделить и объединить

    function cutFromString(oldStr, fullStr) {
      return fullStr.split(oldStr).join('');
    }
    cutFromString('there ', 'Hello there world!'); // "Hello world!"
    

    Адаптировано из Пример MDN

  • String.replace(), в котором используется регулярное выражение. Это означает, что он может быть более гибким с чувствительностью к регистру.

    function cutFromString(oldStrRegex, fullStr) {
      return fullStr.replace(oldStrRegex, '');
    }
    cutFromString(/there /i , 'Hello THERE world!'); // "Hello world!"
    

Ответ 6

Как ссылка для тех, кто ищет подобную функцию, у меня есть реализация String.prototype.bisect, которая разделяет трехсторонние строки с использованием разделителя регулярных выражений/строк и возвращает значение before, delimiter-match и after parts string....

/*
      Splits a string 3-ways along delimiter.
      Delimiter can be a regex or a string.
      Returns an array with [before,delimiter,after]
*/
String.prototype.bisect = function( delimiter){
  var i,m,l=1;
  if(typeof delimiter == 'string') i = this.indexOf(delimiter);
  if(delimiter.exec){
     m = this.match(delimiter);
     i = m.index;
     l = m[0].length
  }
  if(!i) i = this.length/2;
  var res=[],temp;
  if(temp = this.substring(0,i)) res.push(temp);
  if(temp = this.substr(i,l)) res.push(temp);
  if(temp = this.substring(i+l)) res.push(temp);
  if(res.length == 3) return res;
  return null;
};

/* though one could achieve similar and more optimal results for above with: */

"my string to split and get the before after splitting on and once".split(/and(.+)/,2) 

// outputs => ["my string to split ", " get the before after splitting on and once"]

Как указано здесь: https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/String/split

Если разделитель является регулярным выражением, содержащим скобки в скобках, то каждый раз, когда разделитель сопоставляется, результаты (включая любые undefined результаты) скобок для записи объединяются в выходной массив. Однако не все браузеры поддерживают эту возможность.

Ответ 8

Попробуйте следующее:

var str="hello is it me you're looking for";
document.write(str.substring(3)+"<br />");

Вы можете проверить эту ссылку