0

所以我正忙着建立一个网站并试图测试一种过滤器来过滤某些单词,但试图确定哪个是最好的功能以及通过什么语言来使用。我做了一些研究,在 PHP 中我可以使用 strpos() 函数,例如:-

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

我不确定是否有一个像样的 JQuery 函数可以用来实现同样的事情。基本上,我希望能够阻止我的朋友使用我的名字或昵称,因此它将包括“geordie”的任何和所有变体,包括小写和大写以及使用“GeoRdie”或其他影响但也想要的东西停止变化,这将是我的完整昵称“geordie dave”或“geordie ****”,甚至是“geordie dave is a ****”。

我意识到这可能有点复杂,但一定有一种方法可以使用一组名称?

对使用功能的任何帮助都会很棒,如果有人可以给我一个可以使用的代码示例也将是有益的。

4

3 回答 3

2

您可能应该在 javascript 和 php(客户端和服务器端)中执行此操作。的 javascript 等效项strposindexOf. 如果您只检查 javscript,有人可能会伪造一个 post 数据包,但它仍然会被服务器接受。如果您只打算检查一个地方,请将其设置为服务器端,但为了用户友好,两者都是首选。

于 2013-07-28T11:54:02.837 回答
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
}

我将支持 Alfie 所说的:您不能只在客户端上执行此操作,因为客户端请求可能会被欺骗。客户端验证纯粹是为了提供良好的用户体验;始终需要服务器端验证。

于 2013-07-28T11:54:16.153 回答
1

我认为您还应该在 $checkstring 变量上使用 PHP strtolower 函数。

于 2013-07-28T11:57:55.757 回答