javascript – 将英文数字转换为数字值(忽略小数)

我想将这些类型的值转换为“300万”,“24万”,“35万”等等.在任何
JavaScript(所以我可以做客户端)或PHP(服务器端).有这个功能吗?像PHPs strtotime()函数?

input                  output
3 million              3000000
24 thousand            24000
350 thousand           350000

最佳答案 你想把它们结合起来吗?

function convert(num) {

  return num.match(/(\d+)( ?\w* ?)/g).map(mapGroups)
    .reduce(function(p,c){return p+c;});

  function mapGroups(str){
    if (/million/.test(str)){
      return str.match(/\d+/)[0] * 1000000;
    }                                                                                                                                                                                                       
    if (/thousand/.test(str)){
      return str.match(/\d+/)[0] * 1000;
    }   
    if (/hundred/.test(str)){
      return str.match(/\d+/)[0] * 100;
    }   
    return +str;
  }
}

convert("3 million 240 thousand 7 hundred 54"); //3240754
convert("5 millions 7 hundreds 54"); //5000754

这是非常基本的,但你确实掌握了.

点赞