Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.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 在JSP中使用正则表达式进行验证_Javascript_Regex - Fatal编程技术网

Javascript 在JSP中使用正则表达式进行验证

Javascript 在JSP中使用正则表达式进行验证,javascript,regex,Javascript,Regex,我有一个输入字段,我想在进一步传递值之前验证它的内容。不过,我正在努力创建一个合适的正则表达式,因为在online editor中创建的正则表达式实际上不能与我的代码一起工作(实际上它会阻止所有内容) 所需的正则表达式行为: var valueInput = $(row).find("#value").val(); var numbers = /^[0-9.]*$/; if( !valueInput.match(numbers) ) { //do something

我有一个输入字段,我想在进一步传递值之前验证它的内容。不过,我正在努力创建一个合适的正则表达式,因为在online editor中创建的正则表达式实际上不能与我的代码一起工作(实际上它会阻止所有内容)

所需的正则表达式行为:

var valueInput = $(row).find("#value").val();
var numbers = /^[0-9.]*$/;
if( !valueInput.match(numbers) ) {
  //do something                 
}
仅限数字和
,只能将
用作十进制分隔符一次,值不能以
开头/结尾,值不能以0开头

我的代码:

var valueInput = $(row).find("#value").val();
var numbers = /^[0-9.]*$/;
if( !valueInput.match(numbers) ) {
  //do something                 
}
valueInput
很好,它正确地从输入中提取值。有什么想法吗?

编辑。
感谢你们的贡献,我想为未来的人们总结一下,寻找一个答案:

一,。正则表达式不是字符串!我编辑了以前的代码,以确保没有人会感到困惑,但删除“”的注释非常重要,谢谢你的提示。

二,。我决定使用的正则表达式是
/^([1-9][0-9]*)+(?:\。\d+)$/
。我意识到我还需要处理大小写,当值只有小数部分时,它以0开头。我真的不想在这里使用正则表达式,所以我做了一个技巧:如果valueInput以零以外的值开始,我将使用
/^[0]{1,1}\.\d{1,2}$/g
进行验证

/[1-9](\d+)?(\.\d+[1-9])?/
这是我能想到的最好的了。如果这样不行,一定要告诉我

另外,我找到了一个测试正则表达式的好地方。干杯。

我会这样做:

valueInput.match(/([1-9]d*)+(?:\.\d+)?$/)

它将不起作用,因为这个.5将是一个有效的数字。请尝试
parseFloat(valueInput)!=parseFloat(valueInput)
(测试NaN)?或者更好,使用将自动为您验证的
。您创建的正则表达式不正确。外部双引号字符错误;应该是
/^[0-9]*$/
@Pointy你说得对,谢谢!请说明您的代码的作用以及它如何回答问题。如果您得到一个代码片段作为答案,您可能不知道如何处理它。答案应该为OP和未来访客提供如何调试和修复问题的指导。指出代码背后的想法,对于理解问题、应用或修改解决方案有很大帮助。