我正在使用一个JavaScript验证器,可以让我基于正则表达式构建自定义验证。
根据他们的网站:regexp=^[A-Za-z]{1,20}$
允许最多20个字母字符。
如果输入字段中输入的数据超出这个范围,它将返回一个错误。
我需要的是触发输入字段错误的字符串,如果值的第一个字符是星号。
我可以通过以下代码使其触发相反的行为(即如果第一个字符不是星号,则出现错误):
regexp=[\u002A]
请帮忙,谢谢 :-D
我正在使用一个JavaScript验证器,可以让我基于正则表达式构建自定义验证。
根据他们的网站:regexp=^[A-Za-z]{1,20}$
允许最多20个字母字符。
如果输入字段中输入的数据超出这个范围,它将返回一个错误。
我需要的是触发输入字段错误的字符串,如果值的第一个字符是星号。
我可以通过以下代码使其触发相反的行为(即如果第一个字符不是星号,则出现错误):
regexp=[\u002A]
请帮忙,谢谢 :-D
如何尝试:
^[^\*]
该正则表达式匹配任何未以星号开头的输入内容;根据示例正则表达式,任何不匹配该正则表达式的输入都将导致验证错误,因此使用双重否定,您应该得到想要的行为 :-)
我的正则表达式说明:
^
表示“在字符串的开头”[
... ]
结构是一个字符类,它匹配括号内的单个字符^
表示“否定字符类”,即匹配任何不是列出的字符的字符\*
意味着一个字面上的*
;*
在正则表达式中有特殊含义,所以我用反斜杠转义了它。正如Rob在评论中指出的那样,在字符类中逃避(大多数)特殊字符并非必要。如何理解 ^[^\*].+
。
分解:
^
= 字符串的起始位置。[^\*]
= 任意一个字符,不是 '*'.+
= 任意其他字符至少出现一次。你可以通过在 [ 后面使用 ^ 来反转字符类
regexp=[^\u002A]
^(?:[^\*]|$)
。 - Cameron