Я работаю над regexp, где, если пользователь вводит последовательные пробелы, тире, апострофы, тогда мне нужно показать одно сообщение об ошибке
^[a-zA-Z0-9!@#\$%\^\&*\)\(+=._-]{0,}$
С приведенным выше reg exp я получаю, если пользователь вводит одну дефис, я получаю ошибку, но здесь я хочу, чтобы пробелы были апострофами.
Я боюсь здесь, любезно помогите мне
заранее спасибо
Если я правильно понял, в основном вам нужно сделать Back-referencing, чтобы проверить двойные слова (или больше, чем удваивать)
/(\s-,)\1+/.test(...)
const hasDoubles = new RegExp(/(\s|-|,)\1+/);
console.log( hasDoubles.test("hello - ") ) // false
console.log( hasDoubles.test("--") ) // true
console.log( hasDoubles.test(" ") ) // true
console.log( hasDoubles.test(",,") ) // true
Этот код захватывает любое пространство \s
или тире -
или ,
а затем проверяет, если это происходит снова 1 или более раз, обозначаемые \1+
\1
для резервного ссылки на группу захвата, и +
1 или более появлений.
-------
соответствует ли это всем, например.
^(?!.*( {2}|--|''))[a-zA-Z0-9!@#\$%\^\&*\)\(+=._ '-]*$
?