用于在问号之前获取字符串的 Javascript 正则表达式(如果存在)

标签 javascript regex

我有这个字符串:#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/

相关文章:

javascript - Github 说我在 package-lock (cryptiles) 中有一个 Node 安全漏洞,但它没有安装在 package.json 中,我没有使用它,解决方案?

regex - 从vim中的寄存器中删除换行符?

Java以*结尾的正则表达式

正则表达式匹配两个 con

regex - awk 的多个正则表达式

python - `with open` 多个 `findall` 但打开文件一次

javascript - D3.js 复制我的数据

javascript - Angular 2 服务变量在模板中引用时给出控制台错误

javascript - 如何设置 firebase 监听器只监听新添加的 child ?

javascript - typescript:获取接口(interface)中基本类的类型