window.location.search
。此变量的值可能类似于?ref=somestring&read=1
或?read=1&ref=sometring
或仅?ref=somestring
。
如何从变量中仅提取ref=somestring
?
到目前为止,我尝试了以下正则表达式:
ref.match(/ref=([^\&].*)\&/) // works when ?ref=somestring&read=1
ref.match(/ref=([^\&].*)\&/) // not working when only ?ref=somestring
ref.match(/ref=([^\&].*)\&?/) // works when ?ref=somestring
ref.match(/ref=([^\&].*)\&?/) // works but took all part if ?ref=somestring&read=1
答案 0 :(得分:4)
您可以使用:
var m = (ref.match(/[?&](ref[^&]+)/) || ['', ''])[1];
此正则表达式第一次匹配:?
或&
后跟文字ref=
,后跟[^&]+
,组ref[^&]+
组#1
。
答案 1 :(得分:0)
尝试
ref.match(/(ref=[^\&]*)/) //for ref=somestring
或
ref.match(/ref=([^\&]*)/) //for somestring