Проверка порядка введенных символов(тип).
Все привет. Возникла проблема.
<html> <head> <title>ыыы </title> <style type="text/css"> textarea {border:0px;} </style> <script type="text/javascript"> var b1,b2; function get_tex() { var tex = prompt("Введите текст: ","a1234"); var re = /^[a-z. ]+$/ig; var ree = /^[0-9. ]+$/ig; b1=tex.charAt(0); b2=tex.charAt(1); if ((re.test(b1))&&(ree.test(b2))) {alert("меняем на *"); for(var i=0,k1,k2,sum;i<tex.length;i++){ k1=tex.charAt(i+1);//a 1 2 3 4 k2=tex.charAt(i+2); if((ree.test(k1)){document.write(k1+"<br>");} } } else {alert("ни че не делаем");}} </script> <body> <form name="pole"><h2 align="center">Дан текст. Если первый символ текста не является малой латинской буквой, но за начальной группой малых латинских букв не следует цифра, то также оставить текст без изменения. Иначе каждую цифру, принадлежащую группе цифр, следующей за начальной группой малых латинских букв, заменить символом "*". то оставить его без изменения. Если же это малая латинская буква.</h2> Введите размерность массива:<br> <input type="button" value="ввести слова" OnClick="get_tex()"><br> <textarea name="ttt" rows=10 cols=40></textarea> </form> </body> </html> Данный скрипт проверяет не все числа, а через одно к примеру 1 определяет как число, а 2 уже нет.Ни как не могу разобраться что не так. Но помоему косяк где то в переменной re или ree. Подскажите пожалуйста. |
При чем тут числа? Вы не знаете что у вас там числа или буквы, или пунктуация, или альфа-нумерик или ... смотрите еще диапазоны юникода. То есть надо говорить "символы".
Условие задачи специально написано по дебильному чтобы вас запутать. |
Про условие полностью согласен. Но проблему это не решает.Как проверить является ли первый символ буквой латинского алфавита, а второй цифрой (чтоб работало корректно).
P.s. а про числа я говорил как частный случай, в чем собственно и проблема. |
Судя по коду с регулярками можешь работать. Так в чем проблема?
alert( /^[a-z][0-9]/i.test('a1') ) alert( /^[a-z][0-9]/i.test('aa') ) |
Спасибо за первую подсказку можешь еще подсказать, что счас не так:
if ((re.test(b1))&&(ree.test(b2))) {alert("меняем на *"); for(var i=0,k1,k2,sum;i<tex.length;i++){ k1=tex.charAt(i+1);//a 1 2 3 4 k2=tex.charAt(i+2); if(( /^[0-9]/i.test(k1))&&( /^[0-9]/i.test(k2))) { tex.replace(charAt(k1),'*'); tex.replace(charAt(k2),'*'); alert(tex);} } } else {alert("ни че не делаем");}} По какой причине не работает replace? |
Задание написано по-дебильному, еще раз. Любое условие которое требует do nothing попросту выкидывается. Оставшееся действующее вещество таково:
Каждую цифру в тексте, принадлежащую группе цифр, следующей за начальной группой малых латинских букв, заменить символом "*". |
Часовой пояс GMT +3, время: 03:55. |