正则表达式 - 在某些字符串后获取数字

125*_*748 9 javascript regex

我有一个文本字符串,可以是任意数量的字符,我想将订单号附加到最后.然后,当我需要再次使用它时,我可以摘下订单号.由于数字可能是可变长度,我想做一个正则表达式,捕获=字符串中的符号之后的所有内容?order_num=

所以整个字符串都是

"aijfoi aodsifj adofija afdoiajd?order_num=3216545"
Run Code Online (Sandbox Code Playgroud)

我试过使用在线正则表达式生成器,但没有运气.有人可以帮我提取最后的数字并将它们放入一个变量中,并将之前的内容?order_num=203823放入自己的变量中.

我会发布一些自己的尝试,但我预见到失败和混乱.

Max*_*Art 19

var s = "aijfoi aodsifj adofija afdoiajd?order_num=3216545";

var m = s.match(/([^\?]*)\?order_num=(\d*)/);
var num = m[2], rest = m[1];
Run Code Online (Sandbox Code Playgroud)

但请记住,正则表达式很.使用indexOfsubstring/ slice当你可以.例如:

var p = s.indexOf("?");
var num = s.substring(p + "?order_num=".length), rest = s.substring(0, p);
Run Code Online (Sandbox Code Playgroud)


Sim*_*erg 10

我认为不需要正则表达式:

var str="aijfoi aodsifj adofija afdoiajd?order_num=3216545";
var n=str.split("?");
Run Code Online (Sandbox Code Playgroud)

n那么将是一个数组,其中索引0在?之前?并且索引1在之后.

另一个例子:

var str="aijfoi aodsifj adofija afdoiajd?order_num=3216545";
var n=str.split("?order_num=");
Run Code Online (Sandbox Code Playgroud)

会给你结果: n[0]= aijfoi aodsifj adofija afdoiajdn[1]=3216545

  • +1然后在`&`然后在`=`上拆分你甚至可以处理`afdoiajd?iminyourstring = 21312&order_num = 3216545&throwingyouoff = 231221` (2认同)