错误:[处理此指令时发生错误]和正则表达式混淆

时间:2011-10-27 09:51:37

标签: regex php

我使用ftp下载了一个网站,当我在我的主机上测试该网站时,它显示错误

[an error occurred while processing this directive]

您可以在此处http://www.excoflare.com/dev2011/amplitechnic/

查看此错误

另外,我很难获得有效浮点数的正则表达式。我用过这个:

expression: "if (VAL.match(/^[0-9]*\.?[0-9]/)) return true; else return false;",

但即使我写了1.x,上面的表达式也会返回true?

抱歉,我把问题放在一起。

2 个答案:

答案 0 :(得分:4)

这是一个Web服务器错误:

  

通常,当您的SSI指令出现问题时,您会收到消息           [处理此指令时出错]

Apache Tutorial: Introduction to Server Side Includes

这可能是由您页面代码中的SSI指令引起的:

<!-- Here's the call to the silent-counter script -->
[an error occurred while processing this directive]
<!-------------------------------------------------->

SSI指令具有以下语法:

<!--#element attribute=value attribute=value ... -->

另外,为什么在有专门的函数来确定它是否为float时使用regexp,如is_numeric或is_float(如果你需要检查变量类型)在php中。

对于jQuery客户端验证,您可以使用JavaScripts parseFloat()函数(如果它返回NaN,当您的输入不是数字时)。 如下所示:jQuery input validation for double/float

如果您想要正则表达式,可以查看以下问题:Javascript/jQuery - Float Validating?

答案 1 :(得分:0)

^[0-9]*\.?[0-9]

将匹配1,因为你没有行锚定结束$它匹配(部分)你的输入。

要获得更好的浮点正则表达式,可以使用:

^[-+]?[0-9]*\.?[0-9]+\b$

这忽略了科学记数法。它匹配带有可选整数部分的整数或浮点数。标志是可选的。

如果您还想匹配科学记数法,可以使用:

^[-+]?(?:[0-9]+(?:\.[0-9]*)?|\.[0-9]+)(?:[eE][-+]?[0-9]+)?$

关于其他错误我无能为力。