Я пытаюсь извлечь строку из большей строки, где она получает все между ':' и a ';'.
Текущий
Str = 'MyLongString:StringIWant;'
Желаемый вывод
newStr = 'StringIWant'
javascript
regex
string
substring
обкрадывать
источник
источник
Вы также можете попробовать это:
источник
str.split(':').pop().split(';')[0]
может быть быстрее, чем с помощью.shift()
использование
split()
arrStr
будет содержать все строки, разделенные:
или;
так что доступ к каждой строке через
for-loop
источник
\[(.*?)\]
---> Короче говоря, вам нужно избегать квадратных скобок, так как [] обозначает класс символов в регулярном выражении.@Babasaheb Gosavi Ответ идеален, если у вас есть одно вхождение подстрок (":" и ";"). но если у вас есть несколько вхождений, это может быть немного сложно.
Лучшее решение, которое я нашел для работы над несколькими проектами, - это использование четырех методов внутри объекта.
Код
Итак, достаточно разговоров, давайте посмотрим код:
Как пользоваться?
Пример:
источник
RangeError: Maximum call stack size exceeded
исключения.источник
Мне нравится этот метод:
источник
Я использовал @tsds, но только с помощью функции split.
Предостережение: если в строке доступа к индексу «1» массива нет «:», возникнет ошибка! str.split ( ':') [1]
поэтому путь @tsds безопаснее, если есть неопределенность
источник
источник
Вы можете использовать функцию более высокого порядка, чтобы вернуть «скомпилированную» версию вашего экстрактора, таким образом, это быстрее.
С регулярными выражениями и компиляцией регулярного выражения один раз в закрытии, совпадение Javascript вернет все совпадения.
Это оставляет нам только необходимость удалить то, что мы использовали в качестве наших маркеров (то есть:),
{{
и мы можем использовать длину строки для этого со слайсом.Скомпилируйте один раз и используйте несколько раз ...
Или одноразовое использование ...
Также посмотрите на
replace
функцию Javascript, но используйте функцию для аргумента замены (вы могли бы сделать это, если, например, вы выполняете мини-шаблонизатор (интерполяция строк) ... lodash.get также может быть полезным для получения значений, которые вы хотите заменить ? ...Мой ответ слишком длинный, но он может кому-то помочь!
источник
Вы также можете использовать этот ...
источник
Получить строку между двумя подстроками (содержит более 1 символа)
Заметьте, что я использую
indexOf()
вместоlastIndexOf()
так, чтобы он проверил первые появления этих строкисточник
strlength1
переменной? Вместо этого следует использовать значение inline. Также не ясно, какой стиль кейса вы используете.strlength1
- Нет стиля,whole_str
- дело змеи.Попробуйте это, чтобы получить подстроку между двумя символами, используя JavaScript.
Взято из @ Найти подстроку между двумя символами с помощью jQuery
источник
Используя jQuery :
строка
использование :
результат :
источник
Небольшая функция, которую я сделал, которая может захватить строку между, и может (опционально) пропустить количество подходящих слов, чтобы получить определенный индекс.
Кроме того, установка
start
дляfalse
будет использовать начало строки, а установкаend
дляfalse
будет использовать конец строки.установить
pos1
положениеstart
текста, который вы хотите использовать,1
будет использовать первое вхождениеstart
pos2
делает то же самое , какpos1
, ноend
и1
будут использовать первое вхождениеend
только после тогоstart
, вхождениеend
перед темstart
, игнорируется.источник
Это может быть возможным решением
источник