Regex错误:没有可重复的内容

Regex error:nothing to repeat

本文关键字:错误 Regex      更新时间:2023-09-26

我尝试了一个正则表达式来验证一个最多有2位小数的数字。我做了这个

var patt=  /(^'d+[.]?'d{1,2}+$)/g;

它正在RegExr应用程序中工作。

但在chrome中存在错误

SyntaxError: Invalid regular expression: /(^'d+[.]?'d{1,2}+$)/: Nothing to repeat

我在这件事上做错了什么?请帮忙。谢谢

您不能使用'd{1,2}+

{n,m}表示前一个字符必须出现nm次。

+表示前一个字符必须至少出现一次。

你不能同时使用这两种

试试这个正则表达式:

var patt =  /^'d+('.'d{1,2})?$/g;

使正则表达式不正确的是{1,2}之后的+符号。

正则表达式的这一部分是错误的:'d{1,2}+

+表示它重复1次或更多次,{1,2}表示它重复一次或两次。所以你有两个重复的事情在彼此面前。这行不通。

如何解决这个问题?

  • 删除+以将数字(0-9)重复1或2次
  • 删除{1,2}以重复一个数字1次或多次,并且尽可能多
var patt = /^'d+'.?'d{1,2}$/g;