Dart 语言中 JavaScript 的 "s.replace(/[^\w]+/g, '-')" 是什么?

What is the equalient of JavaScript's "s.replace(/[^\w]+/g, '-')" in Dart language?

我正在尝试在 JavaScript 中获取以下工作代码,该代码也在 Dart 中工作。

https://jsfiddle.net/8xyxy8jp/1/

var s = "We live, on the # planet    earth";
var results = s.replace(/[^\w]+/g, '-');

document.getElementById("output").innerHTML = results;

给出输出

We-live-on-the-planet-earth

我试过这个 Dart 代码

void main() {
    print( "We live, on the # planet    earth".replaceAll("[^\w]+","-"));
}

但是输出结果是一样的

我在这里错过了什么?

如果您希望replaceAll() 将参数作为正则表达式处理,您需要传递一个RegExp 实例。我通常使用 r 作为正则表达式字符串的前缀,使其成为未发生插值($\、...)的原始字符串。

main() {
  var s = "We live, on the # planet    earth";
  var result = s.replaceAll(new RegExp(r'[^\w]+'), '-');
  print(result);
}

DartPad

中尝试