JavaScript+Regexp

Valentin

Новичок
JavaScript+Regexp

Помогите пожалуйста! Необходимо, чтобы результат был правильным только для одного раза вхождения 'callback=666'

т.е. 'callback=666&callback=666' не должно проходить.

Код:
<script>
re = /(callback=666){1}$/; // callback=666 в конце строки

if  (!re.test('?article=12&callback=666&callback=666'))
{
	alert( false );
}
else
{
	alert( true );
}
</script>
Необходимо выдавать false если есть 2 и более 'callback=666', сейчас выдаётся true
Заранее спасибо!
 

Sharp

Новичок
Мб,
Код:
re = /callback=666/;
re2 = /callback=666.*callback=666/;
if(re.test(str) && !re2.test(str)){
...
 

Valentin

Новичок
А одним регекспом не сделать?

-~{}~ 16.03.06 10:34:

Почему /(callback=666){1}/ не выполняется?
 

Sharp

Новичок
Потому что это ищет "хотя бы один" регексп, а не "только один". Можно сделать одним регэкспом, если использовать утверждения, например, так:
(?<!word.*)word(?!.*word)
Регексп выдает совпадение, если перед и до слова нет отделенных любым числом любых символов таких же слов.
 

Valentin

Новичок
Перед и после слова?

-~{}~ 17.03.06 17:09:

/(callback=666){1}?/ а так - вроде должен искать только 1
 
Сверху