我正在使用php和mysql。我有一個下拉框,我在問數據類型的MySQL字段。現在,我想把它的JavaScript驗證。我很困惑與枚舉數據類型。我正在使用正則表達式/^[']{1}[^',^\\]+[']{1}$/
。這是枚舉值的單個值。它工作正常,但問題是當我把單引號或反斜槓與反斜槓,它是有效的,但這個正則表達式顯示爲無效。javascript中的正則表達式mysql的enum數據類型
例如,'a'b'無效但'a \'b'有效。
我正在使用php和mysql。我有一個下拉框,我在問數據類型的MySQL字段。現在,我想把它的JavaScript驗證。我很困惑與枚舉數據類型。我正在使用正則表達式/^[']{1}[^',^\\]+[']{1}$/
。這是枚舉值的單個值。它工作正常,但問題是當我把單引號或反斜槓與反斜槓,它是有效的,但這個正則表達式顯示爲無效。javascript中的正則表達式mysql的enum數據類型
例如,'a'b'無效但'a \'b'有效。
^'([^',^\\](\\.)?)+'$
[^',^\\]
匹配任何東西,但字符',^\
。接下來,我們匹配一個可選的\.
,它匹配任何轉義字符(包括\.
和\\
)。我們匹配這一對的一個或多個序列,從而匹配字符串中任何地方的\'
,但不需要它。
請注意,在您的正則表達式中,[']{1}
表示匹配一個'
字符。這相當於文字'
。
這應該工作:/^'(\\.|[^',^\\]+)+'$/
但是,我想補充的空白脫穎而出,並進行驗證後(可以與捕獲組被剝去)/^\s*('(\\.|[^',^\\]+)+')\s*$/
你可以寫'['] {1}`的` 「`。 – Gumbo 2011-01-08 09:38:54
你的意思是用`['] {1}`替換`[^',^ \\] +`? – himadri 2011-01-08 09:43:22
不,用``替換`['] {1}``。它們是等價的。 – marcog 2011-01-08 09:58:26