如何对-,+,。使用preg_match。价值观?

| 我使用此“ 0”条件匹配正,负和十进制值
/^[0-9,-\\.]{1,50}$/
但是当我输入--34.000时,它不会显示错误;当我输入34 ... 9868时,它不会显示错误, 我想要的是它必须只接受正,负和十进制值。     
已邀请:
        试试这个正则表达式
^-?\\d*\\.?\\d+$
我想它不能限制为50个字符     
        如果您需要检查数字是否为need3,则最好使用3 if之类的东西。 您的正则表达式完全坏掉了,因为现在它甚至只能接受包含50个点的字符串     
        如yes123所述,有更好的方法来检测给定的输入字符串是否为数字值。如果您想坚持使用正则表达式,则可能适合以下情况:
/^-?[0-9]+(?:\\.[0-9]+)?$/
说明: 匹配字符串的开头(
^
) 匹配可能的
-
字符(
-?
); “ 8”表示“不需要” 至少匹配一个数字(
[0-9]+
) 可能使括号中的整个语句匹配(
(?:...)?
);
?:
表示“不捕获子图案” 一个点(
\\.
);
.
因其特殊功能而需要转义 至少一个数字(
[0-9]+
) 匹配字符串的结尾(
$
)     
        您需要拆分正则表达式,以便它仅在正确的位置接受字符。例如:
/^[+\\-]?([0-9]+,)*[0-9]+(\\.[0-9]+)?$/
要解释此表达式:
[+\\-]?
:这会检查数字的+或-前缀。它是完全可选的,但只能是+或-。
([0-9]+,)*
:允许使用一组可选的逗号分隔数字。这是为成千上万,等等。
[0-9]+
:这要求该值至少包含一些数字
(\\.[0-9]+)?
:最后,这允许带尾随数字的可选小数点。     

要回复问题请先登录注册