如何将 Java 正则表达式转换为 JavaScript 正则表达式?

Mat*_*teo 5 javascript

如何将正则表达式java转换为正则表达式javascript

例如,我有这样的文本:#hello some text #Home

我的 Java 正则表达式是

String regex = "[#]+[A-Za-z0-9-_]+\\b";
Pattern tagMatcher = Pattern.compile("[#]+[A-Za-z0-9-_]+\\b");
Run Code Online (Sandbox Code Playgroud)

结果是#hello 和#Home

我的 JavaScript 代码是:

var myRegExp = new RegExp("[#]+[A-Za-z0-9-_]+\\b");
var tagMatcher = text.match(myRegExp);
Run Code Online (Sandbox Code Playgroud)

但结果是:

#你好

我该如何解决这个问题?

我的错误在哪里?

Ele*_*Ele 3

缺少全局标志g来获取整组匹配。

var text = "#hello some text #Home";
var myRegExp = new RegExp("[#]+[A-Za-z0-9-_]+\\b", "g");
var tagMatcher = text.match(myRegExp);

console.log(tagMatcher)
Run Code Online (Sandbox Code Playgroud)

就像@JordanRunning提到的,您可以使用正则表达式文字,如下所示,以及更短的方法:

var text = "#hello some text #Home";
var tagMatcher = text.match(/#+[\w-]+\b/g);

console.log(tagMatcher)
Run Code Online (Sandbox Code Playgroud)

使用标志进行高级搜索

正则表达式有五个可选标志,允许全局和不区分大小写的搜索。这些标志可以单独使用,也可以按任意顺序一起使用,并且作为正则表达式的一部分包含在内。