我正在使用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>
答案 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')