我有这个字符串:#test
或 #test?params=something
var regExp = /(^.*)?\?/;
var matches = regExp.exec($(this).data('target'));
var target = matches[1];
console.log(target);
我总是只需要获取 #test.
如果没有找到问号,我粘贴的函数将返回错误。目标是始终返回 #test
无论是否有其他参数。如何制作返回此内容的正则表达式?
最佳答案
该字符串是否直接来自当前页面的 URL?
如果是这样,您可以简单地使用:
window.location.hash.split('?')[0]
如果您正在访问 http://example.com/#test?params=something ,上面的代码将返回“#test”。
测试
example.com/#test -> "#test"
example.com/#test?params=something -> "#test"
example.com/foo#test -> "#test"
example.com -> ""
关于用于在问号之前获取字符串的 Javascript 正则表达式(如果存在),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27565074/