删除除第一个+运算符外的所有非数字字符

时间:2019-11-28 16:10:53

标签: javascript regex

我要删除除第一个+运算符外的所有非数字字符。

因此,+运算符应首先显示。

例如,

+ 614a24569953 => +61424569953

+61424569953+ => +61424569953

2 个答案:

答案 0 :(得分:5)

也许

(?!^\+)[^\d\r\n]+

替换为空字符串只会做到这一点。


第一个陈述

(?!^\+)

忽略字符串开头的+和第二个字符串,

[^\d\r\n]+

忽略字符串中的数字,换行符和回车符。

RegEx Demo

测试

const regex = /(?!^\+)[^\d\r\n]+/g;
const str = `+614a24569953`;
const subst = ``;

const result = str.replace(regex, subst);

console.log(result);


如果您想简化/更新/探索表达式,请在regex101.com的右上角进行解释。如果您有兴趣,可以观看匹配的步骤或在this debugger link中进行修改。调试器演示了a RegEx engine如何逐步使用一些示例输入字符串并执行匹配过程的过程。


RegEx电路

jex.im可视化正则表达式:

enter image description here

答案 1 :(得分:1)

尝试

t1="+614a24569953"
t2="+61424569953"
t3="6142+4569a9+53"

re = /(?<=\+.*)[^0-9]/g


console.log( t1.replace(re, '') );
console.log( t2.replace(re, '') );
console.log( t3.replace(re, '') );