简体   繁体   English

Javascript / Node JS - 使用正则表达式转换字符串?

[英]Javascript / Node JS - using regex to transform a string?

In my nodeJs code I make a REST call to a 3rd party api and one of the values in the response is a string value eg:在我的nodeJs代码中,我对第三方 api 进行了 REST 调用,响应中的值之一是字符串值,例如:

  "total": "-15"

Note that this value can either be a negative number, zero or a positive number, but as a string.请注意,此值可以是负数、零或正数,但可以是字符串。

eg:例如:

   "total": "-5"
   "total": "0"
   "total": "+3"

How can I convert this value to be as follows?如何将此值转换为如下所示? Based off the above example:基于上面的例子:

   5 under
   level par
   3 over

I am quite new to node/javascript - is regex the best option to do this?我对node/javascript很陌生——正regex是最好的选择吗?

As Blunt Jackson said, regex will probably be slower.正如 Blunt Jackson 所说,正则表达式可能会更慢。 Here is a conversion function example:这是一个转换 function 的例子:

 const toText = (value) => { const parsed = parseInt(value) return parsed > 0? `${parsed} over`: parsed < 0? `${Math.abs(parsed)} under`: 'level par'; } console.log(toText("-5")); console.log(toText("0")); console.log(toText("+3"));

I like this question because I like Code Golf:D我喜欢这个问题,因为我喜欢 Code Golf:D

So my suggestion would be this one-liner:所以我的建议是这样的:

const toText = v => v == 0 ? "level par" : v < 0 ? `${-v} under` : `${+v} over`;

console.log(toText("-5"));
console.log(toText("0"));
console.log(toText("+3"));

Works with Numbers or Strings as parameter.使用数字或字符串作为参数。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM