正则表达式删除所有字符串开头的特殊字符

时间:2018-06-08 09:11:46

标签: javascript regex

我有一个字符串看起来像:

var str = https://sharengay.com/movie13.m3u8?pid=144.21.112.0&tcp=none

我想在开始时?pid=删除以结束。结果如下:

var str = https://sharengay.com/movie13.m3u8

我试图:

str = str.replace(/^(?:?pid=)+/g, "");

但它显示如下错误:

  

正则表达式无效:/ ^(?:?pid =)+ /:无需重复

6 个答案:

答案 0 :(得分:1)

您可以创建一个网址对象并连接containera

origin

答案 1 :(得分:1)

您可以使用split

var str = "https://sharengay.com/movie13.m3u8?pid=144.21.112.0&tcp=none"
var result = str.split("?pid=")[0];
console.log(result);

答案 2 :(得分:1)

如果您真的想在字符串级别使用正则表达式执行此操作,则只需将/\?pid=.*$/替换为""

str = str.replace(/\?pid=.*$/, "");

匹配?pid=及其后面的所有内容(.*)到字符串末尾($)。

直播示例:



var str = "https://sharengay.com/movie13.m3u8?pid=144.21.112.0&tcp=none";
str = str.replace(/\?pid=.*$/, "");
console.log(str);




答案 3 :(得分:1)

你必须逃避?,如果你想从那一点删除所有内容,你还需要一个.+

 str = str.replace(/\?pid=.+$/, "")

答案 4 :(得分:1)

您可以使用拆分功能仅获取没有查询字符串的网址。

以下是示例。

var str =' https://sharengay.com/movie13.m3u8?pid=144.21.112.0&tcp=none&#39 ;;

var data = str.split("?");

警报(数据[0]);

答案 5 :(得分:1)

你可以简单地使用split(),我认为这很简单。



var str = "https://sharengay.com/movie13.m3u8?pid=144.21.112.0&tcp=none";
str = str.split("?pid");
console.log(str[0]);