Javascript正则表达式:匹配任何东西,直到某个东西(如果存在的话)

22 浏览
0 Comments

Javascript正则表达式:匹配任何东西,直到某个东西(如果存在的话)

我对正则表达式不熟悉,这可能是一个非常简单的问题(希望如此)。

我试图使用一个解决方案处理3种类型的字符串:

  • "45%", 期望结果:"45"
  • "45", 期望结果:"45"
  • "", 期望结果:""

我尝试的方法(假设字符串为str):

str.match(/(.*)(?!%*)/i)[1]

我认为这样的意思是“匹配任意字符直到找到'%',否则匹配任意字符”。

在Firebug中,它似乎更像是“只匹配任意字符,完全忽略负向预查”。而且使用惰性匹配(.*)?似乎也没有帮助。

暂且不考虑在这种特定情况下我只匹配数字,所以/\d*/就可以了。我想了解一个通用的规则,以便可以随时应用。

有人可以帮帮我吗?

0