gpt4 book ai didi

javascript - 正则表达式不能只验证一个字符

转载 作者:行者123 更新时间:2023-11-29 19:15:37 25 4
gpt4 key购买 nike

这个正则表达式:

^[\w\-]+([\.\w\s\-]+)*[^\s\.]$

...可以很好地验证这样的字符串:

aaa.bbb.ccc
a . b . d
a_b.c
a-b.c d.e

字符串应该以一个或多个字符\wminus开始,可以包含0-n个\w 空格。最后不应有任何 空格

唯一的问题是它不能将仅一个字符识别为有效。但是两个字符,例如aa, a a, --, a_` 被识别。

问:如何更改正则表达式以将一个字母识别为有效?

最佳答案

您可以使用环视来施加这些限制:

^(?=[\w-])(?!.*[\s.]$)[.\w\s-]+$
^^^^^^^^^^^^^^^^^^^^

参见 regex demo

由于先行 (?!.*[\s.]$)(?=[\w-]) 不消耗字符,[.\w\s-]+ 子模式将只能匹配 1 个字符串。

(?!.*[\s.]$) 检查字符串(没有换行符,否则,将 . 替换为 [\s\S]) 结尾不以空格或 . 结尾。

^ 之后的 (?=[\w-]) 检查(一次,在字符串的开头)字符串是否以 - 或单词字符。

关于javascript - 正则表达式不能只验证一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35575949/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com