Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Js регулярные выражения повторяющиеся символы (https://javascript.ru/forum/misc/44726-js-regulyarnye-vyrazheniya-povtoryayushhiesya-simvoly.html)

zoinx2010 30.01.2014 17:56

Js регулярные выражения повторяющиеся символы
 
Здравствуйте! Подскажите пожалуйста как сделать чтобы при условии более 3х повторяющихся символов а именно цифр работало рег. выражение. типа такого /^(.)\1{2,}$/ не работает(

Яростный Меч 30.01.2014 18:09

в регексе будет конструкция (\d)\1{2,}

а что будет вокруг нее - зависит от значения слова "работало"

zoinx2010 30.01.2014 18:13

сделано через jquery.validate плагин, чтобы юзеры не вводили ложные номера типа 55555555 или 9999999 т.е проверять валидность)

zoinx2010 30.01.2014 18:57

(\d)\1{2,} работает но наоборот( т.е если пишешь в форме 12345 то пишет ошибка, а если 55555 отправляет(

zoinx2010 30.01.2014 19:22

разобрался) может кому нужно решение:
/^[0-9](?!.*(\d)\1{2,}).*$/

рони 30.01.2014 19:49

zoinx2010,
так и эдак хорошо :dance: :victory:
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://jquery.bassistance.de/validate/jquery.validate.js"></script>
  <script>
$.validator.setDefaults({
     submitHandler: function () {
         alert("submitted!");
     }
 });
 $.validator.addMethod("test", function (value, element) {
         return !/(\d)\1{2,}/.test(value);
     },
     "Вот это фигня")
 $(function () {
     $("#commentForm").validate({
         rules: {
             field: {
                 required: true,
                 test: true
             }

         }
     })
 });
  </script>
</head>
<body>
<form class="cmxform" id="commentForm" method="get" action="">
	<fieldset>
        <p><input class="left" id="field" name="field"></p>
		<p>
			<input class="submit" type="submit" value="Submit"/>
		</p>
	</fieldset>
</form>


</body>
</html>


Часовой пояс GMT +3, время: 01:41.