Tengo una cadena de texto que puede contener cualquier cantidad de caracteres a los que me gustaría adjuntar un número de pedido hasta el final. Entonces puedo arrancar el número de orden cuando necesito volver a usarlo. Dado que hay una posibilidad de que el número es de longitud variable, me gustaría hacer una expresión regular que todo de captura después de la señal =
en la cadena ?order_num=
regex: obtener números después de cierta cadena de caracteres
Así que toda la cadena sería
"aijfoi aodsifj adofija afdoiajd?order_num=3216545"
tengo intentado usar el generador de expresiones regulares en línea pero sin suerte. ¿Puede alguien ayudarme con la extracción del número al final y ponerlos en una variable y algo para poner lo que viene antes del ?order_num=203823
en su propia variable.
Voy a publicar algunos intentos por mi cuenta, pero preveo el fracaso y la confusión.
hm. ¡No sabía eso! Siempre pensé que dado que eran extremadamente difíciles, tenían que ser ... buenos. Creo que usaré esto si es más rápido. ¡Gracias! – 1252748
'([^ \?] *) \? Order_num = (\ d *)' debe ser '([^ #?] *) \? Order_num = (\ d *)'. Mejor aún: '([^ #?] *) [? &] Order_num = (\ d *)'. Incluso entonces, eso no maneja el carácter escapado en order_num o el número. ¿Por qué JS no tiene un analizador de URL incorporado? – ikegami
@thomas Las expresiones regulares bien * son * buenas porque te permiten hacer en una línea lo que normalmente haces en varias líneas de código. Al ser tan poderoso, también significa ser más lento. Sin mencionar que es mucho más difícil de mantener ... terminarás reescribiendo tus propias expresiones regulares en lugar de arreglarlas. – MaxArt