gpt4 book ai didi

javascript - 确保字符串仅包含数字、句点和可能的前导破折号

转载 作者:行者123 更新时间:2023-11-29 20:47:38 27 4
gpt4 key购买 nike

我仍在学习正则表达式,我需要删除字符串中的所有字符,除了数字 (0-9)、点 (.) 仅第一次遇到,如果出现在字符串的第一个索引上则为负数 (-) .

所以基本上如果我有一个字符串“-12,3asd45,we-678.90.45”它应该给我“-12345678.9045”

这是我当前的代码,但问题是我只想排除 (-) 如果它出现在字符串的第一个索引上,目前它排除所有出现的 (-):

value = val.replace(/[^-0-9.]/g , '');

最佳答案

(?!^)- 替换字符集(字符串开头的负前瞻,后跟 -):

const val = "-12,3asd45,we-678.90"
console.log(val.replace(/[^0-9.-]|(?!^)-/g, ''));

要另外删除除第一个小数点以外的所有小数点,请匹配组中第一个 . 之后的所有内容,并使用回调函数将该组中的所有句点替换为空字符串:

const val = "-12,3asd45,we-678.90.0.0.0"
const value = val
.replace(/[^0-9.-]|(?!^)-/g, '')
.replace(/^([^.]*\.)(.*)/, (_, g1, g2) => g1 + g2.replace(/\./g, ''));
console.log(value);

关于javascript - 确保字符串仅包含数字、句点和可能的前导破折号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53737425/

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