我正在尝试从data-url中提取base64字符串。字符串看起来像这样,所以我试图提取单词base64
之后的所有内容test = 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQAB'
所以我想从上面的字符串
中提取以下内容,/9j/4AAQSkZJRgABAQAAAQAB
这是我的正则表达式
const base64rgx = new RegExp('(?<=base64)(?s)(.*$)');
console.log(test.match(base64rgx))
但这失败了,错误:
VM3616:1 Uncaught SyntaxError: Invalid regular expression: /(?<=base64)(?s)(.*$)/: Invalid group
答案 0 :(得分:3)
似乎不支持lookbehinds。但好消息是你不需要在这里看一下,下面的模式应该有效:
test = 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQAB'
var regex = /.*?base64(.*?)/g;
var match = regex.exec(test);
console.log(match[1]);
我不确定要捕获的base64
之后的字符串数量。例如,如果您不想使用逗号或9j
部分,那么我们可以轻松地修改模式来处理它。
答案 1 :(得分:1)
var test = 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQAB';
var regex = /(?<=base64).+/;
var r = test.match(regex);
console.log(r);
&#13;
这是正则表达式:https://regex101.com/r/uzyu0a/1
答案 2 :(得分:0)