在验证地址字段时,它不接受本机响应(')

时间:2018-10-09 23:41:50

标签: regex react-native fonts expo

我有一个本机反应字段,

<Field
  component={FormInput}
  maxLength={55}
  name="address"
  validate={[
   formValidators.addressLine,
  ]}
/>

其中验证者addressLine使用正则表达式

/^[a-zA-Z0-9#'\`\. ]*$/

尽管接受反引号“`”,但不接受地址字段中的单引号。

移动应用中单引号错误

Single quote not accepted

“`”报价被接受

other quote accepted

对于参考,检查了在线工具中的正则表达式,该工具按预期工作 Matched Regex values

我想知道我是否在正则表达式中犯了任何错误,或者在react-native中是否有其他解决方法? 使用版本:

仅作参考,根据需要使用自定义字体的样式。

fontFamily: 'proximaNovaRegular' or 'proximaNovaSemibold'

1 个答案:

答案 0 :(得分:0)

在测试中发现,redux表单确实以几种奇怪的方式修改了内容。因此,请使用redux-form为字段标记提供的normalize method

<Field
  component={FormInput}
  maxLength={55}
  name="address"
  normalize={normalizeAddressField}
  validate={[
   formValidators.addressLine,
  ]}
/>

normalizeAddressField 所在的位置

const addressFieldNormalize = value => (value ? value.replace(/’/g, "'") : value);

所以,我只是将报价单替换为可识别的报价单,这对我有帮助。