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 角度正则表达式验证器未完全工作_Javascript_Regex_Angular - Fatal编程技术网

Javascript 角度正则表达式验证器未完全工作

Javascript 角度正则表达式验证器未完全工作,javascript,regex,angular,Javascript,Regex,Angular,我已经为纬度输入创建了下面的验证器(在-90和90之间,不包括特殊字符(e、+、等等))。我已经测试了正则表达式,它是有效的。但是,当我在输入上使用它时,它只验证数字范围并允许使用特殊字符(例如“12e”) : 非常感谢您的帮助。 BT7如果要检查值是否介于-90和90之间(包括-90和90),那么首先不应该使用正则表达式 let val = parseFloat(formControl.value) return !!val && val == formControl.va

我已经为纬度输入创建了下面的验证器(在-90和90之间,不包括特殊字符(e、+、等等))。我已经测试了正则表达式,它是有效的。但是,当我在输入上使用它时,它只验证数字范围并允许使用特殊字符(例如“12e”)

:

非常感谢您的帮助。
BT7

如果要检查值是否介于-90和90之间(包括-90和90),那么首先不应该使用正则表达式

let val = parseFloat(formControl.value)
return !!val && val == formControl.value && val >= -90 && val <= 90 ? null : { ...
let val=parseFloat(formControl.value)

返回!!val&&val==formControl.value&&val>=-90&&val您可以创建一个plnkr/小提琴来显示问题吗?
formControl.value
包含什么?“12e”与regex()不匹配,因此它应该返回一个错误。在我下面的回答中,regex似乎不是适合此工作的工具。但是,如果您要坚持使用这种方法,那么这应该是您所使用的方法的更简洁版本:
/^-(?:[0-9]|[1-8][0-9]|90)(?:\.[0-9]{1,6})$/
。但是,如果您遇到了类似于
12e
的问题,那么问题似乎更像是您的错误处理/过滤,而不是正则表达式本身。
let val = parseFloat(formControl.value)
return !!val && val == formControl.value && val >= -90 && val <= 90 ? null : { ...