javascript 正则表达式替换除数字和小数点以外的所有内容

col17t5w  于 2023-02-07  发布在  Java
关注(0)|答案(7)|浏览(177)

我有一个文本字段,需要只保留文本或小数。下面是我目前使用的代码,用于替换除数字和小数点之外的所有内容。问题是,我无法找到一个正则表达式来标识其他内容

document.getElementById(target).value = newVal.replace(/\D[^\.]/g, "");

\D工作正常,但我尝试了(?!.), (?!\.), [^.], [^\.]等...
对于一个正向标识除数字或小数之外的任何事物的正则表达式,有什么建议吗?
谢谢你的帮助

ulydmbyx

ulydmbyx1#

使用此命令:

document.getElementById(target).value = newVal.replace(/[^0-9.]/g, '');
cgyqldqp

cgyqldqp2#

仅删除小数部分可按如下方式进行:

number.replace(/(\.\d+)+/,'');

这会将13.6667px转换为13px(保留单位px不变)。

s2j5cfk0

s2j5cfk03#

试试这个:

document.getElementById(target).value = newVal.replace(/^\d+(\.\d{0,2})?$/, "");
o2gm4chl

o2gm4chl4#

正则表达式语法备忘单

Go MDN

const str1 = 'hello 123 !@#$%^WORLD?.456_';
const str2 = '৳ $ 20,500.00';

console.log(str1.replace(/[^\d.]/g, "")); //123.456
console.log(str2.replace(/[^\d.]/g, "")); //20500.00
7jmck4yq

7jmck4yq5#

检查链路Regular Expression Demo
使用下面的正则表达式

[a-z] + [^0-9\s.]+|\.(?!\d)
iibxawm4

iibxawm46#

使用替换和搜索强制输入十进制数

(text: string )=>{         
     const index = text.search(/(\.)/);                                              
     if (index != text.length -1) {
        let str = text.substring(0, index+1);
        let end = text.substring(index).replace(/[^0-9]/g, '');
        text = str + end;
     }
     return text;
}
nle07wnf

nle07wnf7#

如果你想保留逗号',',但转换为'.',那么你的用户将不会有问题,使用这两个,然后使用:

event.target.value.replace(/[^0-9.,]/g, '').replace(',', '.')

相关问题