Строки

Cинтаксис методов javascript, и порядок определение аргументов, работающих со строками

14 ответов

вы захотите использовать метод строки Javascript .substr() в сочетании с .length собственность.

var id = “ctl03_Tabs1”;var lastFive = id.substr(id.length – 5); // => “Tabs1″var lastChar = id.substr(id.length – 1); // => “1”

Это получает символы, начинающиеся с id.длина-5 а, так как второй аргумент за .функцию substr() опущен, продолжается до конца строки.

вы также можете использовать .slice() метод, как уже упоминалось ниже.

если вы просто хотите найти символы после подчеркивания, вы можете использовать это:

var tabId = id.split(“_”).pop(); // => “Tabs1”

Это разбивает строку на массив в подчеркивании, а затем “всплывает” последний элемент из массива (это строка, которую вы хотите).

888

автор: Jamon Holmgren

получить последний символ легко, так как вы можете рассматривать строки как массив:

var lastChar = id[id.length – 1];

чтобы получить часть строки, вы можете использовать substr

можно использовать метод substr () с отрицательной начальной позицией для извлечения последних N символов. Например, это получает последние 5:

var lastFiveChars = id.substr(-5);

следующий скрипт показывает результат для получения последних 5 символов и последнего 1 символа в строке с помощью JavaScript:

var testword=’ctl03_Tabs1′;var last5=testword.substr(-5); //Get 5 charactersvar last1=testword.substr(-1); //Get 1 character

выход :

Tabs1 / / получил 5 символов

1 / / получил 1 символ

Проверьте функции substring.

чтобы получить последний символ:

id.substring(id.length – 1, id.length);

нет необходимости использовать substr метод для получения одного символа строки!

на примере Jamon Holmgren мы можем изменить метод substr и просто указать позицию массива:

var id = “ctl03_Tabs1”;var lastChar = id[id.length – 1]; // => “1”

предполагая, что вы сравните подстроку с концом другой строки и используете результат как логическое значение, вы можете расширить класс String для выполнения этого:

String.prototype.endsWith = function (substring) { if(substring.length > this.length) return false; return this.substr(this.length – substring.length) === substring;};

позволяет сделать следующие:

var aSentenceToPonder = “This sentence ends with toad”; var frogString = “frog”;var toadString = “toad”;aSentenceToPonder.endsWith(frogString) // falseaSentenceToPonder.endsWith(toadString) // true

если вы просто хотите последний символ или любой символ в позиции знать, вы можете просто трат строку в виде массива! – строки iteratorable в JavaScript –

Var x = “hello_world”; x[0]; //h x[x.length-1]; //d

но если вам нужно больше, чем просто один символ, то используйте соединение эффективно

x.slice(-5); //world

по вашему примеру

“rating_element-<?php echo $id?>”

для извлечения id вы можете легко использовать split + pop

Id= inputId.split(‘rating_element-‘)[1];

это вернет идентификатор или не определено, если идентификатор не был после “rating_element”:)

этот удалит запятую, если это последний символ в строке..

var str = $(“#ControlId”).val();if(str.substring(str.length-1)==’,’) { var stringWithoutLastComma = str.substring(0,str.length-1); }

у меня на самом деле есть следующая проблема, и это, как я решил ее с помощью вышеуказанного ответа, но другой подход к извлечению id образуют входной элемент.

Я приложил входные данные, поданные с

id=”rating_element-<?php echo $id?>”

и, когда эта кнопка нажата, я хочу извлечь id (который является номером) или php ID ($id) только.

Так вот, что я делаю .

$(‘.rating’).on(‘rating.change’, function() { alert($(this).val()); // console.log(this.id); var static_id_text=(“rating_element-“).length; var product_id = this.id.slice(static_id_text); //get the length in order to deduct from the whole string console.log(product_id );//outputs the last id appended });

var id=”ctl03_Tabs1″;var res = id.charAt(id.length-1);

Я нашел этот вопрос, и через некоторые исследования я обнаружил, что это самый простой способ получить последний символ.

Как упоминали другие и добавили для полноты, чтобы получить последние 5:

var last5 = id.substr(-5);

один из способов, используя slice, как следовать:

var id=”ctl03_Tabs1″;var temp=id.slice(-5);

так что значение temp будет “Tabs1”.

Я уверен, что это сработает….

var string1=”myfile.pdf”var esxtenion=string1.substr(string1.length-4)

значение extension будет “.pdf”

Последний символ строки

Давайте выведем последний символ строки. При этом сделаем так, чтобы наш скрипт сам определял номер последнего символа, не зависимо от длины строки.

Пусть у нас есть такая строка:

let str = ‘abcde’;

Как вы видите, количество символов в этой строке равно 5. Если немного подумать, то становится очевидным, что номер последнего символа этой строки будет на 1 меньше ее длины, так как нумерация символов начинается с нуля.

Получается, что зная длину строки, мы можем отнять от нее 1 и получить номер последнего символа, а затем по этому номеру можно получить сам последний символ.

Как вы уже знаете, длину строки можно найти с помощью свойства length. Исходя из этого найдем номер последнего символа:

let str = ‘abcde’;let last = str.length – 1; // номер последнего символа

Используем найденный номер для вывода символа на экран:

let str = ‘abcde’;let last = str.length – 1; // номер последнего символаalert(str[last]); // выведет ‘e’

Промежуточную переменную last можно и не вводить:

let str = ‘abcde’;alert(str[str.length – 1]); // выведет ‘e’

Дана строка. Выведите на экран ее последний символ.

Дана строка. Выведите на экран ее предпоследний символ.

Дана строка. Выведите на экран ее предпредпоследний символ.

Table of contents

  • Сводка
  • Синтаксис
  • Описание
  • Примеры
  • Спецификации
  • Совместимость с браузерами
  • Смотрите также

подробности

Я выполняю два теста для решений A , B , C , D , E ( ext ), F , G (мой)

  • для 8-символьной короткой строки (из вопроса ОП) – вы можете запустить ее ЗДЕСЬ
  • для 1М длинной строки – вы можете запустить ее ЗДЕСЬ

Решения представлены в следующем фрагменте

Вот пример результатов для Chrome для короткой строки

введите описание изображения здесь

Спецсимволы

Многострочные строки также можно создавать с помощью одинарных и двойных кавычек, используя так называемый «символ перевода строки», который записывается как n:

let guestList = “Guests:n * Johnn * Peten * Mary”;alert(guestList); // список гостей, состоящий из нескольких строк

В частности, эти две строки эквивалентны, просто записаны по-разному:

// перевод строки добавлен с помощью символа перевода строкиlet str1 = “HellonWorld”;// многострочная строка, созданная с использованием обратных кавычекlet str2 = `HelloWorld`;alert(str1 == str2); // true

Есть и другие, реже используемые спецсимволы. Вот список:

Символ Описание
n Перевод строки
r Возврат каретки: самостоятельно не используется. В текстовых файлах Windows для перевода строки используется комбинация символов rn.
‘, “ Кавычки
\ Обратный слеш
t Знак табуляции
b, f, v Backspace, Form Feed и Vertical Tab — оставлены для обратной совместимости, сейчас не используются.
xXX Символ с шестнадцатеричным юникодным кодом XX, например, ‘x7A’ — то же самое, что ‘z’.
uXXXX Символ в кодировке UTF-16 с шестнадцатеричным кодом XXXX, например, u00A9 — юникодное представление знака копирайта, ©. Код должен состоять ровно из 4 шестнадцатеричных цифр.
u{X…XXXXXX} (от 1 до 6 шестнадцатеричных цифр) Символ в кодировке UTF-32 с шестнадцатеричным кодом от U+0000 до U+10FFFF. Некоторые редкие символы кодируются двумя 16-битными словами и занимают 4 байта. Так можно вставлять символы с длинным кодом.

Примеры с Юникодом:

// ©alert( “u00A9” );// Длинные юникодные коды// 佫, редкий китайский иероглифalert( “u{20331}” );// , лицо с улыбкой и глазами в форме сердецalert( “u{1F60D}” );

Все спецсимволы начинаются с обратного слеша, — так называемого «символа экранирования».

Он также используется, если необходимо вставить в строку кавычку.

К примеру:

alert( ‘I’m the Walrus!’ ); // I’m the Walrus!

Здесь перед входящей в строку кавычкой необходимо добавить обратный слеш — ‘ — иначе она бы обозначала окончание строки.

Разумеется, требование экранировать относится только к таким же кавычкам, как те, в которые заключена строка. Так что мы можем применить и более элегантное решение, использовав для этой строки двойные или обратные кавычки:

alert( `I’m the Walrus!` ); // I’m the Walrus!

Заметим, что обратный слеш служит лишь для корректного прочтения строки интерпретатором, но он не записывается в строку после её прочтения. Когда строка сохраняется в оперативную память, в неё не добавляется символ . Вы можете явно видеть это в выводах alert в примерах выше.

Но что, если нам надо добавить в строку собственно сам обратный слеш ?

Это можно сделать, добавив перед ним… ещё один обратный слеш!

alert( `The backslash: \` ); // The backslash:

Сводка

Метод lastIndexOf() возвращает индекс последнего вхождения указанного значения в строковый объект String, на котором он был вызван, или -1, если ничего не было найдено. Поиск по строке ведётся от конца к началу, начиная с индекса fromIndex.

Длина строки

Свойство length содержит длину строки:

alert( `Myn`.length ); // 3

Обратите внимание, n — это один спецсимвол, поэтому тут всё правильно: длина строки 3.

length — это свойство

Бывает так, что люди с практикой в других языках случайно пытаются вызвать его, добавляя круглые скобки: они пишут str.length() вместо str.length. Это не работает.

Так как str.length — это числовое свойство, а не функция, добавлять скобки не нужно.

Синтаксис

str.lastIndexOf(searchValue[, fromIndex])

Параметры

searchValue Строка, представляющая искомое значение. fromIndex Необязательный параметр. Местоположение внутри строки, откуда начинать поиск, нумерация индексов идёт слева направо. Может быть любым целым числом. Значение по умолчанию установлено в str.length. Если оно отрицательно, трактуется как 0. Если fromIndex > str.length, параметр fromIndex будет трактоваться как str.length.

Доступ к символам

Получить символ, который занимает позицию pos, можно с помощью квадратных скобок: [pos]. Также можно использовать метод charAt: str.charAt(pos). Первый символ занимает нулевую позицию:

let str = `Hello`;// получаем первый символalert( str[0] ); // Halert( str.charAt(0) ); // H// получаем последний символalert( str[str.length – 1] ); // o

Квадратные скобки — современный способ получить символ, в то время как charAt существует в основном по историческим причинам.

Разница только в том, что если символ с такой позицией отсутствует, тогда [] вернёт undefined, а charAt — пустую строку:

let str = `Hello`;alert( str[1000] ); // undefinedalert( str.charAt(1000) ); // ” (пустая строка)

Также можно перебрать строку посимвольно, используя for..of:

for (let char of “Hello”) { alert(char); // H,e,l,l,o (char — сначала “H”, потом “e”, потом “l” и т. д.)}

Описание

Символы в строке идут слева направо. Индекс первого символа равен 0, а последнего символа в строке stringName равен stringName.length – 1.

‘канал’.lastIndexOf(‘а’); ‘канал’.lastIndexOf(‘а’, 2); ‘канал’.lastIndexOf(‘а’, 0); ‘канал’.lastIndexOf(‘ч’);

Регистрозависимость

Метод lastIndexOf() является регистрозависимым. Например, следующее выражение вернёт -1:

‘Cиний кит, касатка’.lastIndexOf(‘синий’);

Изменение регистра

Методы toLowerCase() и toUpperCase() меняют регистр символов:

alert( ‘Interface’.toUpperCase() ); // INTERFACEalert( ‘Interface’.toLowerCase() ); // interface

Если мы захотим перевести в нижний регистр какой-то конкретный символ:

alert( ‘Interface'[0].toLowerCase() ); // ‘i’

Замена содержимого строки

Метод replace() заменяет указанное значение с другим значением в строке:

Пример

str = “Пожалуйста, посетите Microsoft!”;
var n = str.replace(“Microsoft”, “Schoolsw3”);

Попробуйте сами »

Метод replace() не изменяет строку она вызвана. Он возвращает новую строку.

По умолчанию replace() метод заменяет только первое совпадение:

Пример

str = “Пожалуйста, посетите Microsoft и Microsoft!”;
var n = str.replace(“Microsoft”, “Schoolsw3”);

Попробуйте сами »

По умолчанию replace() метод чувствителен к регистру.Записать MICROSOFT (в верхнем регистре) не получится:

Пример

str = “Пожалуйста, посетите Microsoft!”;
var n = str.replace(“MICROSOFT”, “Schoolsw3”);

Попробуйте сами »

Чтобы заменить нечувствительность к регистру, используйте регулярное выражениес /i флагом (нечувствительность):

Пример

str = “Пожалуйста, посетите Microsoft!”;
var n = str.replace(/MICROSOFT/i, “Schoolsw3”);

Попробуйте сами »

Обратите внимание, что регулярные выражения пишутся без кавычек.

Чтобы заменить все совпадения, используйте регулярное выражениес /g флагом (глобальное совпадение):

Пример

str = “Пожалуйста, посетите Microsoft и Microsoft!”;
var n = str.replace(/Microsoft/g, “Schoolsw3”);

Попробуйте сами »

Вы узнаете намного больше о регулярных выражениях в главе Регулярные выражения JavaScript.

Совместимость с браузерами

Возможность Chrome Firefox (Gecko) Internet Explorer Opera Safari
Базовая поддержка (Да) (Да) (Да) (Да) (Да)
Возможность Android Chrome для Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Базовая поддержка (Да) (Да) (Да) (Да) (Да) (Да)

Смотрите также

Last modified: Mar 23, 2019, by MDN contributors

Рейтинг
( 1 оценка, среднее 5 из 5 )
Загрузка ...