正则表达式:测试字符1出现在字符串2之前的任何位置

时间:2016-06-09 00:01:49

标签: javascript regex

我无法理解正则表达式。我需要一个正则表达式来测试网址。如果?位于字符串中的#之前,我希望正则表达式匹配。

想通过: - test.com/?test=thisshouldmatch#/asjldfj/lskjdf

想失败 - test.com/#/thisshouldfail?test=laskjdflkajsd

我认为前瞻会对此有所帮助,但我需要它不仅限于匹配,只有当角色紧跟在彼此之后。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

你不需要前瞻。只需匹配?后跟任何后跟#

的内容
string.match(/\?.*#/)



var string = "test.com/?test=thisshouldmatch#/asjldfj/lskjdf";
var result = !!string.match(/\?.*#/);
console.log(string, result);

var string = "test.com/#/thisshouldfail?test=laskjdflkajsd";
var result = !!string.match(/\?.*#/);
console.log(string, result);