gpt4 book ai didi

javascript删除字符串中所有连续出现的字符

转载 作者:行者123 更新时间:2023-11-29 10:30:59 24 4
gpt4 key购买 nike

我的目标是从字符串中删除连续出现的 2 个特定字符:点和负号。假设我们有 -123-456.78.9.0-12,之后我应该得到 -123456.789012。可以通过正则表达式替换来完成吗?

如果我可以补充,我的完整目标是只允许数字、负号和点,负号只能作为第一个字符或根本不存在。

非常感谢

最佳答案

您可以在 3 个 replace 调用中完成此操作:

function repl(n) {
return n.replace(/[^\d.-]+/g, '') // remove all non-digits except - and .
.replace(/^([^.]*\.)|\./g, '$1') // remove all dots except first one
.replace(/(?!^)-/g, '') // remove all hyphens except first one
}

console.log(repl('-123-456.78.9.0-12'))
//=> "-123456.789012"

console.log(repl('-123-#456.78.9.0-12-abc-foo'))
//=> "-123456.789012"

console.log(repl('-1234'))
//=> "-1234"

console.log(repl('@-123-#456.78.9.0-12-abc-foo'))
//=> "-123456.789012"

这里:

  1. 第一个 replace 方法是替换除 - 之外的所有非数字字符。
  2. 第二个 replace 方法是替换除第一个点之外的所有点。
  3. 第三个 replace 方法是替换除第一个连字符之外的所有连字符。

关于javascript删除字符串中所有连续出现的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46103301/

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