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

时间:2015-07-31 21:48:06

标签: regex dart

我正在尝试使用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]+","-"));
}

但输出变得相同。

我在这里缺少什么?

1 个答案:

答案 0 :(得分:3)

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

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

DartPad

中试用