Estoy tratando de extraer una cadena dentro de una cadena más grande donde obtiene todo entre ':' y ';'.
Actual
Str = 'MyLongString:StringIWant;'
Salida deseada
newStr = 'StringIWant'
javascript
regex
string
substring
Robar
fuente
fuente
También puedes probar esto:
fuente
str.split(':').pop().split(';')[0]
puede ser más rápido que usarlo.shift()
Utilizar
split()
arrStr
contendrá toda la cadena delimitada por:
o;
Así accederá a cada cadena a través de
for-loop
fuente
\[(.*?)\]
---> En resumen, necesita escapar de corchetes, ya que [] denota la clase de caracteres en la expresión regular.@Babasaheb Gosavi La respuesta es perfecta si tiene una aparición de las subcadenas (":" y ";"). pero una vez que tiene múltiples ocurrencias, puede ser un poco complicado.
La mejor solución que se me ocurrió para trabajar en múltiples proyectos es usar cuatro métodos dentro de un objeto.
Código
Hablando bastante, veamos el código:
¿Cómo utilizar?
Ejemplo:
fuente
RangeError: Maximum call stack size exceeded
excepción.fuente
Me gusta este metodo:
fuente
Utilicé @tsds pero solo con la función de división.
advertencia: si no hay ":" en la cadena que accede al índice '1' de la matriz, se producirá un error. str.split (':') [1]
por lo tanto, la forma @tsds es más segura si hay incertidumbre
fuente
fuente
Puede usar una función de orden superior para devolver una versión 'compilada' de su extractor, de esa manera es más rápido.
Con expresiones regulares, y compilando las expresiones regulares una vez en un cierre, la coincidencia de Javascript devolverá todas las coincidencias.
Esto nos deja con solo tener que eliminar lo que usamos como nuestros marcadores (es decir:)
{{
y podemos usar la longitud de la cadena para esto con el corte.Compila una vez y usa varias veces ...
O uso de una sola vez ...
También mire los Javascript
replace
función pero use una función para el argumento de reemplazo (lo haría si, por ejemplo, estuviera haciendo un mini motor de plantillas (interpolación de cadenas) ... lodash.get también podría ser útil para obtener los valores que desea reemplazar con ? ...¡Mi respuesta es demasiado larga pero podría ayudar a alguien!
fuente
También puedes usar este ...
fuente
Obtener una cadena entre dos subcadenas (contiene más de 1 carácter)
Tenga en cuenta que uso en
indexOf()
lugar de,lastIndexOf()
por lo que verificará las primeras ocurrencias de esas cadenasfuente
strlength1
variable? El valor debe usarse en línea en su lugar. Tampoco está claro qué estilo de caja está utilizando.strlength1
- sin estilo,whole_str
- estuche de serpiente.Intente esto para obtener una subcadena entre dos caracteres usando javascript.
Tomado de @ Buscar subcadena entre los dos caracteres con jQuery
fuente
Usando jQuery :
cuerda
uso :
resultado :
fuente
Una pequeña función que hice que puede agarrar la cadena entre, y puede (opcionalmente) omitir varias palabras coincidentes para agarrar un índice específico.
Además, la configuración
start
defalse
utilizará el comienzo de la cadena y la configuraciónend
defalse
utilizará el final de la cadena.configurado
pos1
en la posición delstart
texto que desea utilizar,1
utilizará la primera aparición destart
pos2
hace lo mismo quepos1
, pero paraend
, y1
usará la primera ocurrencia deend
solo despuésstart
, las ocurrencias deend
antesstart
se ignoran.fuente
Esta podría ser la posible solución.
fuente