使用javascript验证正则表达式时出现问题
我在验证此正则表达式时遇到问题。事实上,该函数的工作原理类似于中间件,用于验证用户输入的数据,用户输入的数据最多可接受逗号后的2位小数 我需要考虑以下示例: 通过:使用javascript验证正则表达式时出现问题,javascript,regex,validation,Javascript,Regex,Validation,我在验证此正则表达式时遇到问题。事实上,该函数的工作原理类似于中间件,用于验证用户输入的数据,用户输入的数据最多可接受逗号后的2位小数 我需要考虑以下示例: 通过: 1.12 10.15 二十 14.1 失败: 10.100 15,10 12e9 任何上面有字母的东西 我的尝试: const validation = (values) => { let errors = {}; let commaValidation = new RegExp("^
- 1.12
- 10.15
- 二十
- 14.1
- 10.100
- 15,10
- 12e9
- 任何上面有字母的东西
const validation = (values) => {
let errors = {};
let commaValidation = new RegExp("^(\d{1,2}(?:\.\d{1,2}))");
for (var prop in values) {
if (commaValidation.test(commaValidation.test(parseFloat(values[prop] && parseFloat(values[prop]) >= 0 && parseFloat(values[prop] <= 20))) ) {
if (Object.prototype.hasOwnProperty.call(values, prop)) {
errors[prop] = "Entrez un nombre entre 0,00 et 20,00";
}
}
}
return errors;
};
export default validation;
const验证=(值)=>{
让错误={};
让commaValidation=newregexp(“^(\d{1,2}(?:\。\d{1,2}))”;
用于(值中的var prop){
如果(commaValidation.test)(commaValidation.test)(parseFloat(values[prop]&&parseFloat(values[prop])>=0&&parseFloat(values[prop]),您必须添加一个锚点$
,并使小数部分可选^\d{1,2}(?:\.\d{1,2})?$
您还需要对RegExp构造函数中的反斜杠进行双重转义,对于匹配项,您只能忽略外部捕获组。@Thefourthbird我如何添加它?因为我对regex是新手?使用让commaValidation=newregexp(^\\d{1,2}(?\.\\d{1,2})$);
或让commaValidation=/^\d{1,2}(?\.\d{1,2})$/
这个正则表达式应该完成工作^\d{1,2}(\.\d{1,2})$