помогите с 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, время: 00:44. |