Ho una stringa di testo che può essere un numero qualsiasi di caratteri che desidero collegare un numero di ordine alla fine. Quindi posso togliere il numero dell'ordine quando ho bisogno di usarlo di nuovo. Dal momento che c'è una possibilità che il numero è di lunghezza variabile, vorrei fare un'espressione regolare che tutto è fermo dopo il segno =
nella stringa ?order_num=
regex - ottieni numeri dopo una determinata stringa di caratteri
Così l'intera stringa sarebbe
"aijfoi aodsifj adofija afdoiajd?order_num=3216545"
ho ho provato ad usare il generatore di espressioni regolari online ma senza fortuna. Qualcuno può per favore aiutarmi a estrarre il numero alla fine e metterli in una variabile e qualcosa di mettere ciò che precede lo ?order_num=203823
nella propria variabile.
Pubblicherò alcuni tentativi per conto mio, ma prevedo fallimento e confusione.
hm. non lo sapevo! Ho sempre pensato che, dato che erano estremamente difficili, dovevano essere bravi ... Penso che userò questo se è davvero più veloce. Grazie! – 1252748
'([^ \?] *) \? Order_num = (\ d *)' dovrebbe essere '([^ #?] *) \? Order_num = (\ d *)'. Meglio ancora: '([^ #?] *) [? &] Order_num = (\ d *)'. Anche allora, questo non gestisce il carattere di escape in order_num o il numero. Perché JS non ha un parser di URL incorporato? – ikegami
@thomas Well regexps * sono * buoni perché consentono di fare in un'unica riga ciò che si fa in diverse righe di codice. Essere così potente significa anche essere più lento. Per non parlare del modo più difficile da mantenere ... finirai per riscrivere le tue espressioni regolari invece di risolverle. – MaxArt