正则表达式 - 第一个字符不应包含特殊字符,后续字符不应包含少数特殊字符
RegEx- first character should not contain special characters and subsequent characters should not contain few special characters
我有一个特定的验证方案。
字符串 的 第一个字符 不应包含特殊字符 我可以使用 /^[!@#$%^&*()_+\-=\[\]{};':"\|,.<>\/?]+$/
但是后面的字符不能包含特定的特殊字符,即!@$%^*+=\[\]{};:\|<>?
我尝试使用正则表达式 /^[!@#$%^&*()_+\-=\[\]{};':"\|,.<>\/?][!@$%^*+=\[\]{};:\|<>?]+$/
并否定结果,但它不起作用。
我想允许除这些特殊字符以外的所有其他字符,所以我试图否定上述正则表达式的结果。
我的意思是,第一个字符应该接受除特殊字符以外的所有内容,随后的字符应该接受除指定特殊字符之外的所有内容。
你很接近。只是缺少在字符 class 中使用 ^
来否定它,也许 +
而不是 *
允许空字符串。
匹配字符串开头:^
匹配一个不是 !@#$%^&*()_+-=[]{};':"|,.<>/?: [^!@#$%^&*()_+\-=\[\]{};':"\|,.<>\/\?]
匹配不包含 !@$%^*+=[]{};:|<>?: [^!@$%^*+=\[\]{};:\|<>\?]*
[=26 之一的任意长度的字符串=]
匹配字符串结尾:$
完整的正则表达式:^[^!@#$%^&*()_+\-=\[\]{};':"\|,.<>\/\?][^!@$%^*+=\[\]{};:\|<>\?]*$
我有一个特定的验证方案。
字符串 的 第一个字符 不应包含特殊字符 我可以使用 /^[!@#$%^&*()_+\-=\[\]{};':"\|,.<>\/?]+$/
但是后面的字符不能包含特定的特殊字符,即!@$%^*+=\[\]{};:\|<>?
我尝试使用正则表达式 /^[!@#$%^&*()_+\-=\[\]{};':"\|,.<>\/?][!@$%^*+=\[\]{};:\|<>?]+$/
并否定结果,但它不起作用。
我想允许除这些特殊字符以外的所有其他字符,所以我试图否定上述正则表达式的结果。
我的意思是,第一个字符应该接受除特殊字符以外的所有内容,随后的字符应该接受除指定特殊字符之外的所有内容。
你很接近。只是缺少在字符 class 中使用 ^
来否定它,也许 +
而不是 *
允许空字符串。
匹配字符串开头:^
匹配一个不是 !@#$%^&*()_+-=[]{};':"|,.<>/?: [^!@#$%^&*()_+\-=\[\]{};':"\|,.<>\/\?]
匹配不包含 !@$%^*+=[]{};:|<>?: [^!@$%^*+=\[\]{};:\|<>\?]*
[=26 之一的任意长度的字符串=]
匹配字符串结尾:$
完整的正则表达式:^[^!@#$%^&*()_+\-=\[\]{};':"\|,.<>\/\?][^!@$%^*+=\[\]{};:\|<>\?]*$