如何将字符串分成数字对?

时间:2019-02-08 18:48:51

标签: node.js

我正在使用regex来提取电话号码,我实现了从文本中提取号码,但是,我需要最终输出:

50 40 60 55 85

我尝试如下:

function extract_number(string){
  const regex = /(?:(\+?\d{1,3}) )?(?:([\(]?\d+[\)]?)[ -])?(\d{1,5}[\- ]?\d{1,5})/
  let value;
  try {
    const result = string.match(regex)
    value = result[0]
  } catch (err) {
    console.error('There was an error, the string don', err);
  }

    for (var i=0; i < value.length; i++) { 
     //console.log(value.charAt(i));
     var temporal =  value.charAt(i)
     var final = temporal + ' '
     console.log(final)
    }

}

但是,当我按如下方式运行函数时:

extract_number('my number is 5540605585')

我只有:

node index.js 
5 
5 
4 
0 
6 
0 
5 
5 
8 
5 
<Buffer 68 6f 6c 61 20 6d 75 6e 64 6f>

因此,我想感谢您为完成这项任务提供的支持,此外,我不知道为什么会得到:

 <Buffer 68 6f 6c 61 20 6d 75 6e 64 6f>

1 个答案:

答案 0 :(得分:1)

尝试一下:

function extract_number(string) {
  const regex = /(?:(\+?\d{1,3}) )?(?:([\(]?\d+[\)]?)[ -])?(\d{1,5}[\- ]?\d{1,5})/
  let value;
  try {
    const result = string.match(regex)
    value = result[0]
  } catch (err) {
    console.error('There was an error, the string don', err);
  }
  const formatted_number = value.toString().replace(/\d{2}(?=.)/g, '$& ')
  console.log(formatted_number)
}

extract_number('my number is 5540605585')