有人可以给出以下条件的正则表达式 react js

问题描述 投票:0回答:2

空间

  • 只允许出现在字母文本中
  • 字段内可以有多个空格,但不能连续

破折号

  • 只允许出现在字母文本中(boyd-lawson" 或 "boyd - lawson" 可以,但 "boyd-" 和 "boyd " 和 " "-boyd" 不行)
  • 字段内允许有多个破折号,但不能连续

期间

  • 不能是字段中的第一个字符
  • 字段内可以有多个句点,但不能连续

撇号

  • 字段内允许多个撇号,但不能连续

我尝试使用下面的表达式

/^(?!.*(?:\s\s|-{2,}|\.{2,}|'{2,}))(?=[A-Za-z\s.\-']+$)(?!.*(?:^\.))/g

javascript reactjs regex validation expression
2个回答
0
投票

你能试试这个吗

常量模式 = /^(?!.--)(?!...)(?!.[^\w\s]\s+)(?!.\s[^\w\s ])(?!..\s)(?!.\s.)(?!.'\s)(?!.\s')(?!.[^\w\s- ]\s+)(?!.\s[^\w\s-])(?!.-\s)(?!.\s-)[A-Za-z0-9\s.- ]*[A-Za-z0-9]$/;


0
投票

这是一个正则表达式,它试图将您的需求重构为一个单一的定义。

  • 第一个字符不能是破折号、空格或句点。
  • 在文本中,字符可以是任何非破折号、非空格、非句点、非撇号字符,或者如果后面没有紧跟另一个字符,则可以是破折号、空格、句号或撇号。
  • 最后一个字符不能是破折号、空格、句点或撇号。

要允许单字符字段,第一个字符后的表达式是可选的。

我们必须单独禁止在开头或结尾使用环视的两个相邻的撇号。

/^(?!'')[^- .](([^- .']|[- .'][^- .'])*[^- .])?(?<!'')$/

如果您特别要求这些字符严格为字母数字,则可能需要进一步限制

[^- .]
[^- .']
。例如,上面的公式将允许两个相邻的逗号或抑扬符;也许你想要实际的文本,或者添加一些其他的进一步的约束。

© www.soinside.com 2019 - 2024. All rights reserved.