2013-07-28 26 views
0

因此,我正在忙於構建網站並試圖針對某些單詞測試某種過濾器,但試圖確定哪個是最佳功能以及使用哪種語言。我已經做了一些調查,在PHP我可以使用對strpos()函數,因此,例如: -用於查找包含另一個字符串的字符串的PHP或JQuery函數

if (strpos($checkstring, 'geordie') !== false) { 
    $checkstring = 'invalid name'; 
} 

我不確定是否有可能被用來實現一個體面的jQuery函數一樣的東西。基本上我希望能夠阻止我的朋友使用我的名字或暱稱,所以它會包括任何和所有變種的「geordie」,包括小寫和大寫,以及通過使用「GeoRdie」或其他東西來影響,但也想停止變化,這將是我的完整綽號'geordie dave'或'geordie ****',甚至'geordie dave是一個****'。

我意識到這可能是一個複雜的一點,但必須有一種方法可能使用一個名稱數組?

對函數的任何幫助都很好,如果有人能給我一個可以使用的代碼的例子也是有益的。

+0

謝謝你們!我會在雙方做。歡呼的建議:) – GeordieDave1980

回答

2

你應該在javascript和php(客戶端和服務器端)中做到這一點。 strpos的javascript當量爲indexOf。如果你只使用javscript進行檢查,有人可以僞造一個post數據包,它仍然會被服務器接受。如果您只想在一個地方辦理登機手續,請將其作爲服務器端,但爲了用戶友好性,兩者都是首選。

1

在JavaScript中,您可以使用String#indexOf(String)來匹配確切的字符串,或者使用RegExp#test(String)來進行更復雜的匹配。

if (str.indexOf("geordie") !== -1) { 
    // `str` contains "geordie" *exactly* (doesn't catch "Geordie" or similar) 
} 

if (/geordie/i.test(str)) { 
    // `str` contains "geordie", case-insensitive 
} 

,我會第二what Alfie said:你不能這樣做的客戶端,因爲客戶端請求可能會被欺騙。客戶端驗證純粹是爲了提供良好的用戶體驗;服務器端驗證始終是必需的。

1

我認爲你也應該在$ checkstring變量上使用PHP strtolower函數。

相關問題