验证数字并允许空格

Validate a number and allow spaces

我目前正在使用 redux 表单来验证我的一些字段:

const validate = values => {
  const errors = {}
  function isNumeric(n) {
    return !isNaN(parseFloat(n)) && isFinite(n);
  }

  if (!values.details) {
    errors.details = 'Must declare'
  }

  if (!values.phone) {
    errors.phone = 'Required'
  } else if(!isNumeric(values.phone)) {
    errors.phone = 'Must ne a number'
  }

  if (!values.fax) {
    errors.fax = 'Required'
  } else if(!isNumeric(values.fax)) {
    errors.fax = 'Must ne a number'
  }

  return errors
}

我的问题是条目“9428 5977”由于中间的 space 而导致验证错误。我怎样才能修复我的验证以允许这个 space?

您可以使用 RegExp 来匹配您的输入。

function isNumeric(n) {
    return n && /^[0-9 ]+$/g.test(n);
}

根据您提到 phone 和传真的示例代码,我相信您不希望像 -3.05E-08 这样的东西有效,即使这是一个有效的有限数字。