【问题标题】:On validating Address field it is not accepting (') in react native在验证地址字段时,它在本机反应中不接受 (')
【发布时间】:2018-10-11 04:52:52
【问题描述】:

我有一个 react native 的字段,

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

验证器addressLine在其中使用了正则表达式

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

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

移动应用中的单引号错误

"`"报价被接受

对于参考检查在线工具中的正则表达式,它按预期工作

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

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

fontFamily: 'proximaNovaRegular' or 'proximaNovaSemibold'

【问题讨论】:

  • 您是否在' 被序列化的某种属性中使用该模式?试试/^[a-zA-Z0-9&amp;apos;`.# ]*$/。请注意,您不需要转义任何正则表达式部分中的反引号和字符类中的点。
  • 我确信在我这边没有完成序列化,但是“Redux-Form”是否在“字段标签”中进行了一些数据修改,然后才显示在屏幕上?我不知道,在搜索时发现没有报告给 redux-form 的问题...

标签: regex react-native fonts expo


【解决方案1】:

在测试中发现 redux-form 确实以一些奇怪的方式修改了内容。所以,使用 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);

所以,我只是将正在修改的引用替换为可识别的引用,它帮助了我。

【讨论】:

    猜你喜欢
    • 2016-06-24
    • 1970-01-01
    • 2018-03-25
    • 2018-08-16
    • 2015-11-23
    • 2016-07-08
    • 2018-01-24
    • 1970-01-01
    • 2020-07-28
    相关资源
    最近更新 更多