Я пытаюсь сопоставить 3 или более последовательных вхождения одного или нескольких специальных символов из набора в строке.Соответствие нескольких вхождений последовательных символов из набора
my js:
var exp = new RegExp("^[\^\$\*%#`!]{3}+$");
return !exp.test(myString);
Не работает. Любая помощь будет оценена.
this i$ a te$t: false
th!$ a te$t: false
th!s is a ^%* test: true
as it has 3 consecutive characters from my set '^%*'
this is a ^%^&%&%& test: true
as it has 3 or more consecutive characters from my set
EDIT:
Я исправил регулярное выражение. Это в JavaScript
var exp = new RegExp("[\^$%#`]{3}"); return exp.test(myString);
Почему он говорит, что это совпадение? %^$^$^$^&^&^&%
Этот вход имеет 2 символов и имеет место между ними.
ваше регулярное выражение недействительно, вы не можете иметь '+' после '{3}' это как сказать: «Я хочу его ровно 3 раза, но также допустимо 1 или более раз». – Robbie
в вашем обновлении, что соответствует, потому что у вас есть пробел в наборе символов .... проверьте мой ответ ниже ... Я протестировал его и, похоже, работает – Robbie