如何不允许只设置相同的字符和特殊符号 - 正则表达式 js
How to don't allow set only the same characters and only special sign - regex js
我正在寻找一些正则表达式模式来:
- 不允许设置相同的字符
- 不允许只允许特殊标志。
所以:
- 11111111 - 不允许
- 1111811111 - 允许
- rrrrrrrr - 不允许
- rrrrrrrrrrr5 - 允许
- 11111111% - 允许
- %$!@$!@@@@ - 不允许
- %%%%%%%%%1 - 允许
我找到了有助于识别字符串只有特殊符号的正则表达式:/^\W*\w.*$/,但我不知道如何在不只是重复字符的条件下加入它。感谢您的任何建议。
您不仅可以断言相同的字符,还可以确保至少匹配一个单词字符。
^(?!(.)+$)[^\w\n]*\w.*$
说明
^
字符串开头
(?!(.)+$)
Negative lookahead, assert not only the same characters in the string matching at least 2 characters
[^\w\n]*
可选择匹配除单词字符或换行符之外的任何字符
\w
至少匹配一个单词字符
.*
可选匹配任何字符
$
字符串结束
const regex = /^(?!(.)+$)[^\w\n]*\w.*$/;
[
"11111111",
"1111811111",
"rrrrrrrr",
"rrrrrrrrrr5",
"11111111%",
"%$!@$!@@@@",
"%%%%%%%%%1",
"a"
].forEach(s => {
if (regex.test(s)) {
console.log(s + " allow")
} else {
console.log(s + " not allow")
}
});
如果不想匹配字符串中的任何空格,可以使用 \S
匹配非空白字符
^(?!(\S)+$)[^\w\s]*\w\S*$
我正在寻找一些正则表达式模式来:
- 不允许设置相同的字符
- 不允许只允许特殊标志。
所以:
- 11111111 - 不允许
- 1111811111 - 允许
- rrrrrrrr - 不允许
- rrrrrrrrrrr5 - 允许
- 11111111% - 允许
- %$!@$!@@@@ - 不允许
- %%%%%%%%%1 - 允许
我找到了有助于识别字符串只有特殊符号的正则表达式:/^\W*\w.*$/,但我不知道如何在不只是重复字符的条件下加入它。感谢您的任何建议。
您不仅可以断言相同的字符,还可以确保至少匹配一个单词字符。
^(?!(.)+$)[^\w\n]*\w.*$
说明
^
字符串开头(?!(.)+$)
Negative lookahead, assert not only the same characters in the string matching at least 2 characters[^\w\n]*
可选择匹配除单词字符或换行符之外的任何字符\w
至少匹配一个单词字符.*
可选匹配任何字符$
字符串结束
const regex = /^(?!(.)+$)[^\w\n]*\w.*$/;
[
"11111111",
"1111811111",
"rrrrrrrr",
"rrrrrrrrrr5",
"11111111%",
"%$!@$!@@@@",
"%%%%%%%%%1",
"a"
].forEach(s => {
if (regex.test(s)) {
console.log(s + " allow")
} else {
console.log(s + " not allow")
}
});
如果不想匹配字符串中的任何空格,可以使用 \S
^(?!(\S)+$)[^\w\s]*\w\S*$