Eu estou tentando extrair uma seqüência de dentro de uma seqüência maior, onde fica tudo entre um ':' e um ';'.
Atual
Str = 'MyLongString:StringIWant;'
Saída desejada
newStr = 'StringIWant'
javascript
regex
string
substring
Roubar
fonte
fonte
Você também pode tentar isso:
fonte
str.split(':').pop().split(';')[0]
pode ser mais rápido do que usar.shift()
Usar
split()
arrStr
conterá toda a string delimitada por:
ou;
então acesse todas as strings através
for-loop
fonte
\[(.*?)\]
---> Em resumo, você precisa escapar entre colchetes, pois [] indica a classe de caracteres no regex.@Babasaheb Gosavi A resposta é perfeita se você tiver uma ocorrência das substrings (":" e ";"). mas uma vez que você tenha várias ocorrências, pode ser um pouco complicado.
A melhor solução que encontrei para trabalhar em vários projetos é usar quatro métodos dentro de um objeto.
Código
Então chega de conversa, vamos ver o código:
Como usar?
Exemplo:
fonte
RangeError: Maximum call stack size exceeded
exceção.fonte
Eu gosto deste método:
fonte
Eu usei @tsds way, mas usando apenas a função split.
palavra de cautela: se não houver ":" na cadeia de caracteres que acessa o índice '1' da matriz, ocorrerá um erro! str.split (':') [1]
portanto, @tsds way é mais seguro se houver incerteza
fonte
fonte
Você pode usar uma função de ordem superior para retornar uma versão 'compilada' do seu extrator, para que seja mais rápido.
Com regexes e compilando o regex uma vez em um fechamento, a correspondência do Javascript retornará todas as correspondências.
Isso nos deixa tendo apenas que remover o que usamos como nossos marcadores (ou seja:)
{{
e podemos usar o comprimento da string para isso com fatia.Compile uma vez e use várias vezes ...
Ou uso único ...
replace
Observe também a função Javascript, mas usando uma função para o argumento de substituição (você faria isso, por exemplo, se estivesse usando um mini mecanismo de modelo (interpolação de strings) ... lodash.get também poderia ser útil para obter os valores desejados substituir com ? ...Minha resposta é muito longa, mas pode ajudar alguém!
fonte
Você também pode usar este ...
fonte
obter string entre para substrings (contém mais de 1 caractere)
Note que eu uso em
indexOf()
vez de,lastIndexOf()
portanto, ele verificará as primeiras ocorrências dessas stringsfonte
strlength1
variável? O valor deve ser usado em linha. Também não está claro qual estilo de caso você está usando.strlength1
- sem estilo,whole_str
- estojo de cobra.Tente fazer isso para obter substring entre dois caracteres usando javascript.
Retirado de @ Localizar substring entre os dois caracteres com jQuery
fonte
Usando jQuery :
corda
uso :
resultado :
fonte
Uma pequena função que eu criei que pode pegar a string entre, e pode (opcionalmente) pular várias palavras correspondentes para pegar um índice específico.
Além disso, definir
start
parafalse
usará o início da sequência e definirend
comofalse
usará o final da string.definido
pos1
na posição dostart
texto que você deseja usar,1
usará a primeira ocorrência destart
pos2
faz a mesma coisa quepos1
, mas paraend
, e1
usará a primeira ocorrência deend
somente depoisstart
, as ocorrências deend
antesstart
são ignoradas.fonte
Esta poderia ser a solução possível
fonte