Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > регулярное вырожение


Автор: fleetboss 21.5.2010, 15:34
Помогите составить регулярное вырожение. В другом файле вроде работает, а в нужном нет. Есть поле где нужно указать имя пользователя. Нужно чтобы разрешал только латинские и русские буквы без пробелов. Вот сам код:

Код
if (name == 'u_name') {
        if (value.match(/[^А-Яа-яЁёa-zA-Z]/)) {
            err_text = "<b>разрешены только латинские и русские буквы<br>\n";
        }
    }

Автор: bars80080 21.5.2010, 16:24
а что есть value и name?
и почему они называются, как известные атрибуты?, что вносит свой элемент глюкавости
или используются с with?

да и вообще весь код функции желательно бы

Автор: fleetboss 21.5.2010, 16:40
Код
<script type="text/javascript">
function check_correct(name, check_length){
    var freg=document.sendmail;
    var value = freg[name].value;
    var name2='';
    document.all[name+"_err"].innerHTML = "";
    if (!value) return ;
    var err_text = '';

    if (name == 'l_name') {
        if (value.match(/[^a-zA-Z0-9]/)) {
            err_text = "<b><?php echo l_login; ?></b> <?php echo l_e_1_reg; ?><br>\n";
        } else {
            if (value.length < 6 || value.length >20) {
            if (check_length==1)
                err_text += "<?php echo l_e_2_reg; ?><br>\n";
            else err_text+= " ";
            }
            if (value.match(/[a-zA-Z]/) && value.match(/[А-Яа-яЁё]/)) {
                err_text += "<b><?php echo l_login; ?></b> <?php echo l_e_3_reg; ?><br>\n";
            }
            if (value.match(/(.)\1\1/)) {
                err_text += "<b><?php echo l_login; ?></b> <?php echo l_e_4; ?><br>\n";
            }
        }
    }
}
</script>


Код

<form method="POST" onsubmit="return validate()" action="" name="sendmail">
<table width="600" border="0" align="center">
<tr><td nowrap colspan="2" id="reg_err" name="reg_err" align="center"><b><font color="#dd3333"><?php echo $reg_error; ?></font></b></td></tr>
<tr><td colspan="2" align="left"><?php echo l_login; ?>:<br><input size="40" maxlength="50" name="l_name" type="text" value="<? echo $_POST['l_name']; ?>" onblur="check_correct('l_name',1)" onkeyup="check_correct('l_name',1)" onchange="check_correct('l_name',1)" title="<?php echo l_login; ?>"><font color="#d10816"> *</font></td></tr>
<tr><td colspan="2" id="l_name_err" name="l_name_err"><font color="#dd3333"><?php echo $error_l_name; ?></font></td></tr>
</table>
</form>

Автор: ex3c 22.5.2010, 12:26
match используется для разбиения строки на массив по найденному шаблону. Для проверки строки на соответсвие используйте test:

Код

/[\w\d]+/.test(string);

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)