Javascript 正则表达式匹配URL参数
给定以下两个字符串Javascript 正则表达式匹配URL参数,javascript,regex,Javascript,Regex,给定以下两个字符串 ?room=any_characters123&name=John ?room=any_characters123 我想用正则表达式提取“任意字符123” 我试过了 (?<=room=)(\w)+(?=\&) (?如果您使用的是JS,则不支持lookback。您可以按如下方式修改正则表达式: room=([^&]+) 如果您使用的是JS,则不支持lookbehind。您可以按如下方式修改正则表达式: room=([^&]+) 尝
?room=any_characters123&name=John
?room=any_characters123
我想用正则表达式提取“任意字符123”
我试过了
(?<=room=)(\w)+(?=\&)
(?如果您使用的是JS,则不支持lookback。您可以按如下方式修改正则表达式:
room=([^&]+)
如果您使用的是JS,则不支持lookbehind。您可以按如下方式修改正则表达式:
room=([^&]+)
尝试将*
放在表达式的末尾:
room=(\w+)\&*?
它将测试&
的零或正频率,尝试将*
放在表达式的末尾:
room=(\w+)\&*?
它将测试&
的零或正出现率,因为javascript不支持lookbehind,所以您需要使用捕获组
\?room=(\w+)
示例:
> var s = "?room=any_characters123&name=John"
> var s1 = "?room=any_characters123"
undefined
> var re = /\?room=(\w+)/;
undefined
> console.log(re.exec(s)[1])
any_characters123
undefined
> console.log(re.exec(s1)[1])
any_characters123
因为javascript不支持lookbehinds,所以需要使用捕获组
\?room=(\w+)
示例:
> var s = "?room=any_characters123&name=John"
> var s1 = "?room=any_characters123"
undefined
> var re = /\?room=(\w+)/;
undefined
> console.log(re.exec(s)[1])
any_characters123
undefined
> console.log(re.exec(s1)[1])
any_characters123
这应该可以做到:
/room=(\w+)&?/
/*
find "room=" then match any word characters (at least one) until you
possibly hit "&"
*/
例如:
/room=(\w+)&?/.test("?room=any_characters123")
// => true
"?room=any_characters123".match(/room=(\w+)&?/)
// => ["room=any_characters123", "any_characters123"]
这应该可以做到:
/room=(\w+)&?/
/*
find "room=" then match any word characters (at least one) until you
possibly hit "&"
*/
例如:
/room=(\w+)&?/.test("?room=any_characters123")
// => true
"?room=any_characters123".match(/room=(\w+)&?/)
// => ["room=any_characters123", "any_characters123"]
通过两个正则表达式测试运行字符串,一个是您已有的测试,然后是此测试:
(?<=room=)(\w){1,}$
(?通过两个正则表达式测试运行字符串,一个是您已有的,然后是这个:
(?<=room=)(\w){1,}$
(?令人惊讶的是,这个最古老的正确答案仍然没有投票权+1令人惊讶的是,这个最古老的正确答案仍然没有投票权+1