regex - get numbers after certain character string

前端 未结 3 1222
执念已碎
执念已碎 2020-12-16 01:24

I have a text string that can be any number of characters that I would like to attach an order number to the end. Then I can pluck off the order number when I need to use it

相关标签:
3条回答
  • 2020-12-16 02:04

    I see no need for regex for this:

    var str="aijfoi aodsifj adofija afdoiajd?order_num=3216545";
    var n=str.split("?");
    

    n will then be an array, where index 0 is before the ? and index 1 is after.

    Another example:

    var str="aijfoi aodsifj adofija afdoiajd?order_num=3216545";
    var n=str.split("?order_num=");
    

    Will give you the result: n[0] = aijfoi aodsifj adofija afdoiajd and n[1] = 3216545

    0 讨论(0)
  • 2020-12-16 02:13

    You can substring from the first instance of ? onward, and then regex to get rid of most of the complexities in the expression, and improve performance (which is probably negligible anyway and not something to worry about unless you are doing this over thousands of iterations). in addition, this will match order_num= at any point within the querystring, not necessarily just at the very end of the querystring.

    var match = s.substr(s.indexOf('?')).match(/order_num=(\d+)/);
    if (match) {
      alert(match[1]);
    }
    
    0 讨论(0)
  • 2020-12-16 02:21
    var s = "aijfoi aodsifj adofija afdoiajd?order_num=3216545";
    
    var m = s.match(/([^\?]*)\?order_num=(\d*)/);
    var num = m[2], rest = m[1];
    

    But remember that regular expressions are slow. Use indexOf and substring/slice when you can. For example:

    var p = s.indexOf("?");
    var num = s.substring(p + "?order_num=".length), rest = s.substring(0, p);
    
    0 讨论(0)
提交回复
热议问题