gpt4 book ai didi

regex - TypeScript 字符串替换为正则表达式、组和部分字符串

转载 作者:搜寻专家 更新时间:2023-10-30 20:54:16 24 4
gpt4 key购买 nike

我想在输入时使用正则表达式格式化输入中的数字。
我的问题是:由于我使用组来格式化数字,它只在字符串与正则表达式匹配时格式化。下面是一个例子:
完整号码是:12312312312 |格式化看起来像:123.123.123-12

例如,如果我键入 1231231,它不会像我预期的那样格式化为 123.123.1,只有当我键入整个数字时。

这是我的功能:

format(value){
// This function returns the formatted string on user input
return value.replace(/(\d{3})(\d{3})(\d{3})(\d+)/, "\$1.\$2.\$3-\$4");
}

有什么方法可以使剩余的组成为可选的吗?

最佳答案

你可以用

function formatStr(str){
str = str.replace(/(\d{1,3})(\d{0,3})(\d{0,3})(\d{0,2})/g, function(a, b, c, d, e){
let ret = "";
if(b != "")
ret = b;
if(c != "")
ret = ret+"." + c;
if(d != "")
ret = ret+"." + d;
if(e != "")
ret = ret+"-" + e;
return ret;
})
console.log(str);
}

formatStr('12312312312');
formatStr('1231231');

关于regex - TypeScript 字符串替换为正则表达式、组和部分字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45699571/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com