- String.prototype.substring()
- Синтаксис
- Параметры
- Описание
- Примеры
- Пример: использование метода substring()
- Пример: использование метода substring() вместе со свойством length
- Пример: замена подстроки в строке
- Спецификации
- Совместимость с браузерами
- Смотрите также
- Found a content problem with this page?
- Получить подстроку между двумя символами, используя JavaScript
- код
- Как использовать?
- Пример:
String.prototype.substring()
Метод substring() возвращает подстроку строки между двумя индексами, или от одного индекса и до конца строки.
Синтаксис
str.substring(indexA[, indexB])
Параметры
Целое число от 0 до длины строки, определяющее смещение в строке первого символа, который будет включён в результирующую подстроку.
Необязательный параметр. Целое число от 0 до длины строки, определяющее смещение в строке первого символа, который не будет включён в результирующую подстроку.
Описание
Метод substring() извлекает символы, начиная с индекса indexA до, но не включая, индекс indexB . В частности:
- Если аргумент indexA равен аргументу indexB , метод substring() вернёт пустую строку.
- Если аргумент indexB опущен, метод substring() извлечёт символы до конца строки.
- Если любой из аргументов меньше, либо равен нулю или равен NaN , он будет трактоваться как равный 0.
- Если любой из аргументов больше, чем stringName.length , он будет трактоваться как равный stringName.length .
Если аргумент indexA будет больше аргумента indexB , то метод substring() сработает так, как если бы аргументы были поменяны местами; например, str.substring(1, 0) == str.substring(0, 1) .
Примеры
Пример: использование метода substring()
В следующем примере метод substring() используется для отображения символов из строки ‘Mozilla’ :
var anyString = 'Mozilla'; // Отобразит 'Moz' console.log(anyString.substring(0, 3)); console.log(anyString.substring(3, 0)); // Отобразит 'lla' console.log(anyString.substring(4, 7)); console.log(anyString.substring(7, 4)); // Отобразит 'Mozill' console.log(anyString.substring(0, 6)); // Отобразит 'Mozilla' console.log(anyString.substring(0, 7)); console.log(anyString.substring(0, 10));
Пример: использование метода substring() вместе со свойством length
Следующий пример использует метод substring() и свойство length для извлечения последних символов из строки. Этот метод может оказаться легче для запоминания, особенно если учесть, что вам не нужно знать начальный и конечный индексы, как это было в примере выше.
// Отобразит 'illa' - последние 4 символа var anyString = 'Mozilla'; var anyString4 = anyString.substring(anyString.length - 4); console.log(anyString4); // Отобразит 'zilla' - последние 5 символов var anyString = 'Mozilla'; var anyString5 = anyString.substring(anyString.length - 5); console.log(anyString5);
Пример: замена подстроки в строке
Следующий пример демонстрирует замену подстроки в строке. Он заменит как отдельные символы, так и целые подстроки. Вызов функции в конце примера изменит строку ‘Дивный новый мир’ на строку ‘Дивный новый веб’ .
// Заменяет oldS на newS в строке fullS function replaceString(oldS, newS, fullS) for (var i = 0; i fullS.length; ++i) if (fullS.substring(i, i + oldS.length) == oldS) fullS = fullS.substring(0, i) + newS + fullS.substring(i + oldS.length, fullS.length); > > return fullS; > replaceString('мир', 'веб', 'Дивный новый мир');
Обратите внимание, что функция может скатиться в бесконечный цикл, если строка oldS сама является подстрокой для newS — например, если вы попытаетесь заменить слово «мир» на слово «другоймир». Лучше использоваться следующий метод для замены строк:
function replaceString(oldS, newS, fullS) return fullS.split(oldS).join(newS); >
Код выше следует рассматривать всего лишь как пример работы с подстроками. Если вам нужно заменить подстроки, скорее всего вы захотите использовать метод String.prototype.replace() .
Спецификации
Совместимость с браузерами
BCD tables only load in the browser
Смотрите также
Found a content problem with this page?
This page was last modified on 22 окт. 2022 г. by MDN contributors.
Your blueprint for a better internet.
Получить подстроку между двумя символами, используя JavaScript
Кто-нибудь знает, как я буду делать это при каждом появлении подстроки между моей начальной и конечной строкой?
@tom, хотя «8 секунд» без контекста не несет никакой значимой информации — но я уверен, что это не различие в одном прогоне)
Вы также можете попробовать следующее:
var str = 'one:two;three'; str.split(':').pop().split(';').shift(); // returns 'two'
var s = 'MyLongString:StringIWant;'; var arrStr = s.split(/[:;]/); alert(arrStr);
arrStr будет содержать всю строку, помеченную : или ;
Поэтому доступ к каждой строке через for-loop
Строка, которую я хочу, находится между [], и это не работает . например: ‘MyLongString [StringIWant]’. Split (/ [[]] /);
@Philippe Для вашего варианта использования используйте это регулярное выражение \[(.*?)\] —> Короче говоря, вам нужно избегать квадратных скобок, так как [] обозначает класс символов в регулярном выражении.
var s = 'MyLongString:StringIWant;'; /:([^;]+);/.exec(s)[1]; // StringIWant
перевод: «/» запустить шаблон. Сопоставьте «:» с «[]» что-нибудь из «^;» не точка с запятой «+» несколько раз, а затем найти «;» точка с запятой и «/» заканчивают шаблон.
@Babasaheb Gosavi Answer is perfect, если у вас есть одно появление подстрок ( «:» и «;» ). но как только у вас будет несколько случаев, это может немного запутаться.
Лучшее решение, которое я разработал для работы над несколькими проектами, — это использование четырех методов внутри объекта.
- Первый метод: — фактически получить подстроку из двух строк (однако он найдет только один результат).
- Второй метод: удалит (будущий) последний найденный результат с подстроками после и до него.
- Третий метод: будет выполнять эти два метода рекурсивно по строке.
- Четвертый метод: применит третий метод и вернет результат.
код
Достаточно говорить, посмотрим код:
var getFromBetween = < results:[], string:"", getFromBetween:function (sub1,sub2) < if(this.string.indexOf(sub1) < 0 || this.string.indexOf(sub2) < 0) return false; var SP = this.string.indexOf(sub1)+sub1.length; var string1 = this.string.substr(0,SP); var string2 = this.string.substr(SP); var TP = string1.length + string2.indexOf(sub2); return this.string.substring(SP,TP); >, removeFromBetween:function (sub1,sub2) < if(this.string.indexOf(sub1) < 0 || this.string.indexOf(sub2) < 0) return false; var removal = sub1+this.getFromBetween(sub1,sub2)+sub2; this.string = this.string.replace(removal,""); >, getAllResults:function (sub1,sub2) < // first check to see if we do have both substrings if(this.string.indexOf(sub1) < 0 || this.string.indexOf(sub2) < 0) return; // find one result var result = this.getFromBetween(sub1,sub2); // push it to the results array this.results.push(result); // remove the most recently found one from the string this.removeFromBetween(sub1,sub2); // if there more substrings if(this.string.indexOf(sub1) >-1 && this.string.indexOf(sub2) > -1) < this.getAllResults(sub1,sub2); >else return; >, get:function (string,sub1,sub2) < this.results = []; this.string = string; this.getAllResults(sub1,sub2); return this.results; >>;
Как использовать?
Пример:
var str = 'this is the haystack >> >> >> >> >> some text >> end of haystack'; var result = getFromBetween.get(str,">>"); console.log(result); // returns: [0,1,2,3,4,5]