Регулярные выражения в условиях
Помогите написать регулярное выражение, совпадающее со строкой, которая:
-не содержит пробелов -не содержит никаких символов, кроме символов из набора A-Za-z0-9, точки, подчеркивания и минуса -начинается только с символа из набора A-Za-z0-9 и заканчивается только A-Za-z0-9 И самое главное - добавить к этому проверку, не допускающую, чтобы между буквенными или цифровыми символами могло быть больше одного из этих символов: . -_ В общем, чтобы могло быть так: Рыцарь_Смерти 777neo_hell777 M.e.g.A T-u-r-b-O N_A_G_I_B_A_T_O_R_666 и т.д. И не могло быть так: _Mamku_epal_ .ZVER. -imba- V_-olchara T.-_voy--pa..pka и т.д. |
Цитата:
|
var arr = ['Рыцарь_Смерти', '777neo_hell777', 'M.e.g.A', 'T-u-r-b-O', 'N_A_G_I_B_A_T_O_R_666', '_Mamku_epal_', '.ZVER.', '-imba-', 'V_-olchara', 'T.-_voy--pa..pka']; var reg = /^([a-zа-яё\d])([_.-](?![_.-])|[a-zа-яё\d])*[a-zа-яё\d]$/i; arr.forEach(function(item) { console.log( item + ': ' + reg.test(item) ); }); |
Цитата:
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> table,td{ border: #000080 1px solid } .red{ background: #FF6161 } .green { background: #66CC33 } </style> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script> $(function() { var d = /^[a-z\u0430-\u044f\u0451\d]+([-._]?[a-z\u0430-\u044f\u0451\d])*$/i, a = $("<table/>"); $.each("Рыцарь_Смерти|777neo_hell777|M.e.g.A|T-u-r-b-O|N_A_G_I_B_A_T_O_R_666|_Mamku_epal_|.ZVER.|-imba-|V_-olchara|T.-_voy--pa..pka".split("|"), function(e, b) { var c = $("<tr/>"); $.each([b, d.test(b)], function(a) { c.append($("<td/>", { text: this, "class": a ? 1 == this ? "green" : "red" : "" })) }); $(a).append(c) }); $("body").append(a) }); </script> </head> <body> </body> </html> |
рони, Коллега, что бы код не был легкомысленным, нужно добавить больше $.isArray()
|
kichSman,
:-? |
А вот так не хотите :)
/^([a-z0-9]([._-](?=[a-z0-9]))?)+$/i |
Цитата:
alert(/^([a-z0-9]([._-](?=[a-z0-9]))?)+$/i.test('Рыцарь_Смерти')); |
рони,
Rise, Ruslan_xDD, Спасибо, люди! Все вариант ы прекрасно работают! рони, отдельно благодарю за таблицу истиности :victory: |
Часовой пояс GMT +3, время: 03:16. |