2011-04-17 31 views
3

請不要告訴我有關使用布爾值!來檢查它。因爲我想使用jquery插件在我的函數中執行某些操作。我只想修復它只是正則表達式部分...這可能嗎?如何檢查一個字符串是否不包含帶正則表達式的「bird」或「cat」?

+0

請你來重組你的問題的方式,是正射校正時間? – NikiC 2011-04-17 17:14:21

+1

正則表達式是由javascript還是php完成的? – 2011-04-17 19:34:50

+0

通過原來的正則表達式語言。可以檢查這種情況嗎? 在文本框中可以插入除'字符串'之外的所有內容,即使我插入'dog1234',也可以傳遞! – lovepong 2011-04-18 10:41:08

回答

2

您可以使用此斷言/否定斷言結構來檢查整個字符串不包含birdcat

preg_match('/(?=^((?!cat|bird).)+$) (......)/xs', $string); 

我想這是不是特別有效。但至少這個設置是獨立於實際匹配正則表達式的 - 例如(......)這裏。

+0

這種情況下,我不能使用'preg_match',因爲我不使用PHP。 – lovepong 2011-04-18 08:25:21

+0

在Javascript中使用'new RegExp('/..../')'嘗試一下。我不確定是否JS regexp確實支持兩種斷言類型。 (如果它不起作用,那麼你將不會使用正常的'!'測試..) – mario 2011-04-18 08:26:51

+0

這種情況下,我不能使用'preg_match',因爲我不使用PHP。我的意思是,當我在文本框中輸入,然後RegEx檢查我的意思是除了'貓'或'鳥'之外的任何一個詞,除非我插入cater它應該傳遞給。現在是jquery js腳本中的代碼,我只有一行可以使用RegEx語言進行編輯。像這樣 「alertBox」:{ 「正則表達式」:/ \ b(?!cat | bird)\ //我不知道用戶填充到文本框,而且我確實必須將字符串用戶鍵入到是「貓」還是「鳥」 「alertText」:「休息!BS,你是貓還是鳥!」 }, – lovepong 2011-04-18 08:42:11

5

檢查它更好,IMO:

preg_match('/^(?!.*(cat|bird).*$)(......)/xs', $string); 
+0

這裏的'/ x'是什麼? – tchrist 2011-04-18 01:54:02

+0

@tchrist我不知道。提問者使用PHP,但我,我只知道Python。我去了PHP手冊,閱讀關於/ x的解釋,但是那一刻我不太明白,所以我認爲「最好的」就是像在馬里奧的回答中那樣編寫options/xs。 - 現在我再次閱讀了解釋,並且我明白它與Python中的VERBOSE標誌類似,允許在RE內寫評論。如果在這個RE中沒有評論,那麼/ x確實沒用,你是對的 – eyquem 2011-04-18 06:29:47

相關問題