gpt4 book ai didi

javascript - 验证字符串以匹配数字/ float

转载 作者:行者123 更新时间:2023-11-30 19:27:46 25 4
gpt4 key购买 nike

我在使用正则表达式时遇到了一些麻烦,因为要验证该值是一个有效的数字/ float 。

正则表达式值: (?<=^| )\d+((\,\d+)|(\.\d+))?(?=$| )

允许的示例:“51,5”、“54”、“54.636”、“-45.6”、“-2”、...

不允许使用的示例:“djg52§”、“-”、“51”。 “56 8”、“89-”、...

问题是这个正则表达式包含positive lookbehind但目前 Mozilla Firefox 不支持它。 如果没有回溯,这个正则表达式的替代方案是什么?

最佳答案

你可以使用

(?:^ ?|\D )(-?\d+(?:[,.]\d+)?)(?!\S| \d)

或者,如果您的字符串是独立的

(?:^\s?|\D\s)(-?\d+(?:[,.]\d+)?)(?!\S|\s\d)

参见 regex demoregex graph :

enter image description here

详情

  • (?:^\s?|\D\s) - 一个非捕获组匹配字符串的开头,后面有一个可选的空格或一个非数字字符和一个空格<
  • (-?\d+(?:[,.]\d+)?) - 捕获第 1 组:一个可选的 -,1+ 个数字和一个可选的序列. 和 1+ 位数字
  • (?!\S|\s\d) - 如果在当前位置的右侧立即存在非空白字符或空白字符,则匹配失败的否定前瞻后跟一个数字。

关于javascript - 验证字符串以匹配数字/ float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56731785/

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