2010-09-19 284 views
1

我正在編寫一個帶有客戶端和服務器端驗證的php表單類。我在檢查在javascript中使用正則表達式的字符串中是否存在文字反斜槓(「\」)時遇到問題。排除Javascript中的文字反斜槓正則表達式

我想避開使用正則表達式的解決方案,因爲這將減少php和js之間的特殊情況的數量,並減少我需要編寫的條件代碼的數量。

我剛剛一直在使用這個作爲一個什麼樣的用戶可能需要在此形式接收機類

是6到12個字符長,並且 排除「之間的串 密碼字段的例子\」, 「#」, 「$」, 「`」

我曾嘗試:

^[^(\u0008#\$`)]{6,12}$ 
^[^(\b#\$`)]{6,12}$ 
^[^(\\#\$`)]{6,12}$ 

其中沒有一個反斜槓工作我無法弄清楚爲什麼。 FYI:後者在PHP中運行良好。

回答

3

正則表達式\\匹配單個反斜槓。在JavaScript中,這會變成re = /\\/re = new RegExp("\\\\")

http://www.regular-expressions.info/javascript.html

+0

啊天啊我是小白。我應該先在那裏檢查!謝謝你的幫助。 – User123342234 2010-09-19 02:38:11

+0

感謝@Matthew Flaschen捕捉我沒有的東西:|/facepalm – jcolebrand 2010-09-19 02:53:50

+0

這不是你。這是StackOverflow的渲染器中的一個奇怪的錯誤。 – 2010-09-19 02:59:33

1

看起來你已經創建斜線散列美元滴答的分組,而不是找任何這些字符的直撕開。

試試這個

var rgx = new RegExp(/^[^\\#\$`]{6,12}$/); 
+0

感謝您的幫助,但它不是分組。就是因爲我用引號封裝,所以要麼丟掉引號,要麼逃脫爲「\\\\」。感謝你的幫助。 (S.O.只是不讓我選擇一個答案呢,S) – User123342234 2010-09-19 02:47:15

相關問題