正则表达式在regex101中匹配,但在TypeScript正则表达式测试中不匹配

正则表达式在regex101中匹配,但在TypeScript正则表达式测试中不匹配,regex,typescript,Regex,Typescript,我需要一个正则表达式来匹配0.0-6.0之间的数字,它还应该匹配逗号,比如0,0-6,0,最后但并非最不重要的是,它应该匹配0-6之间的数字 我是新来的正则表达式,所以不介意我的正则表达式是否完全错误 我当前的正则表达式是->/(^[0-5][.|,]\d$)|(^[6][.|,][0]$)|(^[0-6]$)/gms 这与regex101中的每种情况都匹配,但与我的typescript代码中的情况不匹配 在代码中,我将匹配字符串,如下所示: /(^[0-5][.|,]\d$)|(^[6][.|

我需要一个正则表达式来匹配0.0-6.0之间的数字,它还应该匹配逗号,比如0,0-6,0,最后但并非最不重要的是,它应该匹配0-6之间的数字

我是新来的正则表达式,所以不介意我的正则表达式是否完全错误

我当前的正则表达式是->
/(^[0-5][.|,]\d$)|(^[6][.|,][0]$)|(^[0-6]$)/gms

这与regex101中的每种情况都匹配,但与我的typescript代码中的情况不匹配

在代码中,我将匹配字符串,如下所示:

/(^[0-5][.|,]\d$)|(^[6][.|,][0]$)|(^[0-6]$)/gms.test(stringToTest)
这匹配0-6和0.0-6.0,但不匹配0,0-6,0。如何改进我的正则表达式,使其如正则表达式101所示工作

提前感谢您的帮助。

您可以使用

^(?:[0-5](?:[.,][0-9])?|6(?:[.,]0)?)$
  • ^
    行的开头
  • (?:
    非捕获组
    • [0-5]
      匹配数字0-5
    • (?:[,][0-9])?
      可以选择匹配一个
      后跟一个数字0-9
    • |
    • 6
      匹配6
    • (?:[,]0)?
      可以选择匹配一个
      .a.
      后跟一个0
  • $
    行尾

请注意,您不需要字符类
[.|,]
中的管道,它意味着按照字面意思匹配管道字符,而不是OR。
[6]
不必位于方括号之间

您不需要使用
/s
标志,因为模式确实使用了也应该与换行符匹配的点

const regex = /^(?:[0-5](?:[.,][0-9])?|6(?:[.,]0)?)$/gm;
你可以用

^(?:[0-5](?:[.,][0-9])?|6(?:[.,]0)?)$
  • ^
    行的开头
  • (?:
    非捕获组
    • [0-5]
      匹配数字0-5
    • (?:[,][0-9])?
      可以选择匹配一个
      后跟一个数字0-9
    • |
    • 6
      匹配6
    • (?:[,]0)?
      可以选择匹配一个
      .a.
      后跟一个0
  • $
    行尾

请注意,您不需要字符类
[.|,]
中的管道,它意味着按照字面意思匹配管道字符,而不是OR。
[6]
不必位于方括号之间

您不需要使用
/s
标志,因为模式确实使用了也应该与换行符匹配的点

const regex = /^(?:[0-5](?:[.,][0-9])?|6(?:[.,]0)?)$/gm;