Регулярные выражения в условиях
Помогите написать регулярное выражение, совпадающее со строкой, которая:
-не содержит пробелов -не содержит никаких символов, кроме символов из набора 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, время: 23:43. |