我正在尝试编写一个javascript REGEX来验证字符串。
它应符合以下要求。
它只能包含大写和小写英文字母(a至z,A至Z)(ASCII:65至90、97至122)AND / OR数字0至9(ASCII:48至57)AND字符-_〜(ASCII :45,95,126)。前提是它们不是第一个或最后一个字符。它也可以具有角色。(点,句号,句号)(ASCII:46),前提是它不是第一个或最后一个字符,并且还没有连续出现两次或两次以上。
我有以下REGEX的Java版本。
^(?= [^ \ W _])[\ w〜-] ++(\。[\ w *〜-] ++)* +(?<= [^ \ W _])$
并且尝试将其转换为Java失败。以下是我的失败尝试。
^(?= [^ \ W _])[\ w〜-] +(。[\ w〜-] +)(。 [\ w])$
在以下两个测试中失败
abc..def 1
无效字符串的测试用例:
"a." "1." "a1." "aB78." "aB78..ab" "aB78,1" "aB78 abc" ".Abc12"
有效字符串的测试用例:
"a" "1" "a1" "a.1" "abc-def" "a1b2c~3" "012_345"
根据您的要求,您可以提出:
^(?!.*\.{2})(?=.*[a-zA-Z0-9]$)[a-zA-Z0-9][-~.\w]*$
在multiline
模式下,请参阅regex101.com上的演示。
解释:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句