首页 > 解决方案 > 简单的正则表达式在 Chrome 扩展中不起作用(Popup.js)

问题描述

我有一个让我发疯的问题。所有其他正则表达式都在工作,但如果它包含一个字母,它们就会“停止”工作。

字符串如下:

مسلسل The Outsider 2020 الموسم الاول الحلقة 8 مترجمة

我想得到数字“8”。文字可以理解为“Series x Season y Episode NUMBER”。我正在尝试使用以下正则表达式获取号码:

/(?<=.*الحلقة.*)[0-9]+(?=.*)/g

在此处https://regexr.com/或在控制台上应用它时工作正常。我在 Popup.js 文件中实现它。

以下正则表达式工作正常,没有问题

/(?<=title=")(.*?)(?=")/

我的 JS 代码来获取正则表达式:

        let episodeNumber = item.match(/(?<=title=")(.*?)(?=")/)[0];
        console.log("t: " + episodeNumber);
        episodeNumber = episodeNumber.match(/(?<=.*الحلقة.*)[0-9]+(?=.*)/g);
        console.log(episodeNumber);

第一个日志给了我结果(上面的文本)第二个日志在控制台中给出了 null。这真的很奇怪。

如果正则表达式格式不正确,请将“الحلقة”替换为“Episode”。它是阿拉伯语,这就是为什么它在格式上看起来很奇怪。

标签: regexgoogle-chrome

解决方案


推荐阅读