Javascript正则表达式在_和 - 之间找到字符串

Max*_*ins 1 javascript regex

我正在尝试使用正则表达式来获取en字符串的一部分word_en-gb

我正在使用.match();eg

var string = "word_en-gb";
string.match(/(?<=\_)(.*?)(?=\-)/);
Run Code Online (Sandbox Code Playgroud)

(?<=\_)(.*?)(?=\-)可以工作,regex101.com但当我在我的代码中使用它时,我得到错误Uncaught SyntaxError: Invalid regular expression: /(?<=_)(.*?)(?=-)/: Invalid group

\_(.*?)\-匹配regex101但产生 _en-,en

anu*_*ava 5

Lookbehind在Javascript正则表达式中不可用.您可以使用捕获的组#1:

var string = "word_en-gb";
string.match(/_(.*?)(?=-)/);
//=> ['_en', 'en']
Run Code Online (Sandbox Code Playgroud)

或否定:

string.match(/_([^-]*)/);
//=> ['_en', 'en']
Run Code Online (Sandbox Code Playgroud)