помогите с regexp'aми
Добрый день. нужно написать регулярное выражение на javascript.
Условия: 1. после: запятой, точки, знака восклицания если есть любая буква без пробела - ошибка. 2. если есть любой буквенной или цифровой символ перед знаком восклицания, то он должен быть один, знак восклицания. var str = 'Hello,asd, asd'; var reg=/(\,|\.|\!|\;)+(\s)/gi var arr=str.search(reg) if (arr == -1) { document.write('Где пробел %username%??') } выше код написал. но проблема в том, что, если условие выполняется один раз, а дальше все равно после запятой нет пробела он не срабатывает |
boiler0303,
1.Если после знака критично наличие символа а не пробела, так и ищите символ \S а не пробел \s 2. Искать надо не пробел \S и после него более 1 восклицательного знака \S!{2,} Для примера: var str = 'Hello,asd, asd!!'; var reg=/(,|\.|!|;|\?)([\wА-яЁё]+)/g; var re=/[\wА-яЁё]!{2,}/g; var d = { ",":"запятой", ".":"точки", "!":"восклицательного знака", ";":"точки с запятой", "?":"вопросительного знака"} reg.exec(str); if(RegExp.$1) alert("Где пробел после "+d[RegExp.$1]+" перед "+RegExp.$2+" ?"); if(re.test(str)) alert("Используйте один восклицательный знак!"); |
Зачем (,|\.|!|;|\?), если можно ([,.!;?])?
|
Часовой пояс GMT +3, время: 14:11. |