Javascript正则表达式在双引号内获取内容

时间:2018-12-15 23:47:28

标签: javascript regex

如何在两个字符串中获取内容?

示例:

主字符串:

document.cookie="cookie=name";

如何选择cookie = name部分?

我尝试过:

document.cookie=\"(.*?)\";

但是,选择孔字符串而不是cookie = name。

3 个答案:

答案 0 :(得分:2)

您可以使用split

str.split('"')[1]

答案 1 :(得分:1)

有了它,只需提取第一个匹配项

var regex = /document.cookie=\"(.*?)\";/;
var match = regex.exec('document.cookie="cookie=name";');
console.log(match[1]);

答案 2 :(得分:0)

let str = 'document.cookie="cookie=name"';
let regx = /\".+=.+\"$/;

let match = str.match(regx)[0].replace(/\"/g, "");
console.log(match);

let [data, name] = match.split("=");
console.log("Data: " + data + " and name: " + name);

虽然用双引号将字符串分割当然是有效的,但是OP以表达对使用正则表达式感兴趣的方式撰写了帖子,这是该答案要解决的问题。您可以使用与位于str末尾的模式匹配的正则表达式来隔离希望从外部字符串中提取的部分。接下来,字符串使用其replace方法全局替换其所有双引号。然后,将整个结果分配给变量match,此时,已经提取了内部字符串'cookie = name'。

当然,您可以通过在等于字符上拆分match的字符串值来进行操作,就像该代码在采用数组解构的语句中所做的那样。此操作将导致变量dataname分别包含值“ cookie”和“名称”。