Javascript正则表达式-匹配字符串后的所有内容
Javascript Regex - Match everything after string
我试图使用JS regex在我的url中删除字符串后的一切。例如www.myurl/one/two/three/?a=b&c=d
,我想删除字符串"three/"之后的所有内容。我怎么写一个正则表达式来匹配这个呢?
试试这个:
function getPathFromUrl(url) {
return url.split("?")[0];
}
var url = 'www.myurl/one/two/three/?a=b&c=d';
var result = getPathFromUrl(url);
alert(result);
有一个快速的方法。
var str = 'www.myurl/one/two/three/?a=b&c=d'
var newStr = str.replace(/(.*'/three'/).*/, '$1')
alert(newStr)
使用内置功能来操作url。
var a = document.createElement('a');
a.href = "http://www.myurl/one/two/three/?a=b&c=d";
a.search = '';
console.log(a.href);
指出:
-
a
元素的search
属性是指以问号开头的部分 -
这里需要
http://
;否则,该URL将被解释为相对于当前URL
如果您更喜欢使用regexp,那么您可以擦除以问号开头的所有内容:
"www.myurl/one/two/three/?a=b&c=d".replace(/'?.*/, '')
或者,您可以匹配您想要保留的内容,例如到的所有内容,使用:
"www.myurl/one/two/three/?a=b&c=d".match(/.*(?='?)/)[0]
您需要[0]
,因为match
返回一个数组,其第一个元素是整个匹配。这里的?=
是一个前瞻性。实际上这和
"www.myurl/one/two/three/?a=b&c=d".match(/[^?]+/)[0]
或者,如果你想匹配three/
:
"www.myurl/one/two/three/?a=b&c=d".match(/.*three'//)[0]
或者基本上使用String和Array方法:
var string = "www.myurl/one/two/three/?a=b&c=d";
var array = string.split('/');
array.pop();
var result = array.join("/");
console.log(result); //www.myurl/one/two/three
相关文章:
- java.net和javascript之间正则表达式的差异
- Grunt匹配正则表达式
- 不同浏览器中的空白字符正则表达式行为
- 正则表达式在字符串中找到base64
- 子字符串/正则表达式以获取字符串中保存的 SRC 值
- 调用正则表达式匹配的函数
- 使用正则表达式评估电子邮件地址时出现性能问题
- Javascript 正则表达式 : ^[^/s/]+[a-z]{1,}[0-9]*[-_]*[^/][
- JavaScript正则表达式文本与RegExp对象
- 正则表达式只允许 x 个整数
- 使用正则表达式将输入格式设置为单字符逗号、单字符逗号等
- 改进用于验证付款金额的正则表达式
- 正则表达式与数字中的第二个点匹配
- 键按正则表达式以查找具有负值的小数
- 一个正则表达式,用于从JS中的HTML标记中删除id、样式和类属性
- 将po-box javascript正则表达式转换为c#regex
- 在mongoose中使用正则表达式在对象数组中进行查询搜索
- 使用正则表达式捕获“”并分割成阵列
- 将这些正则表达式从javascript转换为Java
- 用于验证JS中逻辑运算符表达式的正则表达式