Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript int和float的正则表达式都不能正常工作_Javascript_Regex_String - Fatal编程技术网

Javascript int和float的正则表达式都不能正常工作

Javascript int和float的正则表达式都不能正常工作,javascript,regex,string,Javascript,Regex,String,我需要允许用户只在文本框中输入整数33和浮点33.343 下面是我的正则表达式查询,但它不能正常工作。它允许用户输入浮点值,但在int值上给出错误。但我也需要允许用户输入int。当用户输入任何其他类型的值时,它工作正常并发出错误消息 /^[0-9]*[.][0-9]*$/ 使用正则表达式模式 ^(?=.*\d)\d*(?:\.\d*)?$ 这将匹配,例如: 1234 123. 1.23 12.3 0.12 .123 使用正则表达式模式 ^(?=.*\d)\d*(?:\.\d*)?$ 这将

我需要允许用户只在文本框中输入整数33和浮点33.343

下面是我的正则表达式查询,但它不能正常工作。它允许用户输入浮点值,但在int值上给出错误。但我也需要允许用户输入int。当用户输入任何其他类型的值时,它工作正常并发出错误消息

/^[0-9]*[.][0-9]*$/
使用正则表达式模式

^(?=.*\d)\d*(?:\.\d*)?$
这将匹配,例如:

1234
123.
1.23
12.3
0.12
.123
使用正则表达式模式

^(?=.*\d)\d*(?:\.\d*)?$
这将匹配,例如:

1234
123.
1.23
12.3
0.12
.123

使圆点及其后的零件为可选:

"^\d+(?:\.\d+|)$"
也更喜欢\d而不是[0-9],不要使用*,因为这样一来,您就可以不使用数字了

这将接受:

1
1.23
但不是:

.1
23.

如果您想要这种行为,这取决于您。

使点及其后面的部分成为可选的:

"^\d+(?:\.\d+|)$"
也更喜欢\d而不是[0-9],不要使用*,因为这样一来,您就可以不使用数字了

这将接受:

1
1.23
但不是:

.1
23.
如果你想要这种行为,这取决于你自己。

试试:

/^[0-9]+(?:\.[0-9]+)?$/
尝试:

/^[0-9]+(?:\.[0-9]+)?$/


+1用于使用\d,但我建议:^\d*\.?\d+$用于防止没有值的点,例如33,或允许正值/负值:[+\-]?^\d*\.?\d+$@Blazes-但33。是有效的数字/格式,所以。。。?最好允许这样做:您应该使用+而不是*查看一些BNF定义,并且足够公平-33。是一个有效的整数。我的C++编译器不考虑1。作为一个int,它抛出一个警告,说它必须将double转换为int并失去精度。因此,这实际上取决于您认为什么是有效的。+1用于使用\d,但我建议:^\d*\.?\d+$防止一个没有值的点,例如33,或者允许正值/负值:[+\-]?^\d*\.?\d+$@Blazes-但是33。是有效的数字/格式,所以。。。?最好允许这样做:您应该使用+而不是*查看一些BNF定义,并且足够公平-33。是一个有效的整数。我的C++编译器不考虑1。作为一个int,它抛出一个警告,说它必须将double转换为int并失去精度。所以这真的取决于你认为什么是有效的。我没有投你反对票,但你创造了一个不必要的群体。我想你的意思是:^\d+?:\。\d+?$与.123或123不匹配两个有效数字/格式均不在我的编译器中:警告C4244:“正在初始化”:从“double”转换为“int”,可能会丢失数据@Ωmega,我认为这真的取决于情况,这些是否应该被认为是有效的@Ωmega,很公平,但真正的问题是Asp_新手是否希望这些被视为有效的用户输入。我没有否决你的投票,但你创建了一个不必要的组。我想你的意思是:^\d+?:\。\d+?$与.123或123不匹配两个有效数字/格式均不在我的编译器中:警告C4244:“正在初始化”:从“double”转换为“int”,可能会丢失数据@Ωmega,我认为这真的取决于情况,这些是否应该被认为是有效的@Ωmega,这很公平,但真正的问题是Asp_新手是否希望这些被视为有效的用户输入。@Florent-您是向谁发表上述评论的?@dan1111-此解决方案与有效数字(如.123或123)不匹配@Ωmega我认为这取决于具体情况。我知道它将与parseInt一起工作,但我认为OP需要有效的整数和浮点数,以直观的方式。@Florent-您是向谁发表上述评论的?@dan1111-此解决方案与有效数字(如.123或123)不匹配@Ωmega我认为这取决于具体情况。我知道它将与parseInt一起工作,但我认为OP需要有效的整数和浮点数,以直观的方式。