如何在没有模式字符串的情况下通过Regex获得所有干净的链接

时间:2018-06-13 12:05:40

标签: javascript jquery regex

当我尝试这个比赛时我得到这样的链接;

结果:

"视频"" SRC":" HTTPS:\ / \ / video-mxp1-1.xx.fbcdn.net \ / V \ /t42.9040 -2 \ /34384597_178997956146914_227512178675023872_n.mp4"

我想要像这样清理链接:https:\ / \ / video-mxp1-1.xx.fbcdn.net \ / v \ /t42.9040-2 \ /34384597_178997956146914_227512178675023872_n.mp4

感谢您的帮助; 我的代码如下:

var VideoLinks='"type":"video","src":"https:\\\/\\\/video-mxp1-1.xx.fbcdn.net\\\/v\\\/t42.9040-2\\\/34333324_n.mp4?_nc_cat=0&efg=ey1&oe=5B211DB0","width":null"type":"video","src":"https:\\\/\\\/video-mxp1-1.xx.fbcdn.net\\\/v\\\/t42.9040-2\\\/34333324_n.mp4?_nc_cat=0&efg=ey1&oe=5B211DB0","width":null';

My Pattern
pattern =/"video","src":"(.*?)"/g;
var videos=Sitestring.match(pattern);
console.log(videos);

1 个答案:

答案 0 :(得分:3)

const str = '"video","src":"https:\vid1.mp4"';

const regex = new RegExp('src\":\"(.*)\"', 'i');

console.log(regex.exec(str)[1]);

关于多次出现

function getMatch(str, regex) {
  const matches = [];

  let oneMatch;

  do {
    oneMatch = regex.exec(str);

    if (!oneMatch) {
      return matches;
    }

    matches.push(oneMatch[1]);
  } while (oneMatch);
}

const str = '"video","src":"https:vid1.mp4","video","src":"https:vid2.mp4","video","src":"https:vid3.mp4"';

const regex = new RegExp('src\":\"(.*?)\"', 'ig');

console.log(getMatch(str, regex));