Определение регулярного выражения JavaScript, которое соответствует чему угодно, кроме конкретной строки

Хорошо, сейчас я чувствую себя довольно толстым. В принципе, я хочу определить регулярное выражение JavaScript, которое будет точно соответствовать чему угодно кроме конкретная строка. Скажем, у меня есть строка

"dog"

или

"cat"

. Мне нужно одно автономное регулярное выражение, такое, чтобы оно соответствовало строке

"dogsled"

или строке

"cattle"

. Только не «собака» или «кошка» в Я пробовал это, что в основном гласит: игнорировать все, что начинается с "кошка" или "собака", что не совсем то, что мне нужно ...

var pattern= /^(?!dog|cat).+/

pattern.test("cat") // false, as expected
pattern.test("dog") // false, as expected
pattern.test("bananananana") // true
pattern.test("dogsled") // false, but the regexp I want would return true

Это должно быть просто .... спасибо!

Редактировать Чтобы прояснить, я не хочу делать какое-либо отрицание возвращаемых значений, чтобы получить желаемый результат - регулярное выражение должно возвращать false для «dog» и true для «dogled» или false для «cat» и true для «рогатого скота».

11
задан VLostBoy 13 January 2012 в 16:06
поделиться