Php 如何确保字符串只包含预定义的接受字符列表中的字符?

Php 如何确保字符串只包含预定义的接受字符列表中的字符?,php,validation,character,Php,Validation,Character,假设我有一个HTML页面,其中有一个文本字段,要求用户输入一个单词。然后,我在PHP脚本中使用$\u POST[]变量来处理变量并执行一些操作。我的页面和PHP脚本将使用UTF-8编码,因此用户可以输入任何内容 我想知道的是,如何确保用户输入的单词中包含的所有字符都是预定义字符列表的一部分 例如,该列表将包含字符0到9、a到z、a到z,但也包含一些其他字符,如u、ù、ù、ù、ô、ô、,ẑ 等等我不想要的是俄语字母表中的字符,如з、з、з、з等,以及其他种类的外来字符 我可以使用正则表达式,但它是

假设我有一个HTML页面,其中有一个文本字段,要求用户输入一个单词。然后,我在PHP脚本中使用
$\u POST[]
变量来处理变量并执行一些操作。我的页面和PHP脚本将使用UTF-8编码,因此用户可以输入任何内容

我想知道的是,如何确保用户输入的单词中包含的所有字符都是预定义字符列表的一部分

例如,该列表将包含字符0到9、a到z、a到z,但也包含一些其他字符,如u、ù、ù、ù、ô、ô、,ẑ 等等我不想要的是俄语字母表中的字符,如з、з、з、з等,以及其他种类的外来字符

我可以使用正则表达式,但它是最合适的解决方案吗?是不是太慢了?那么一个包含所有字符的数组呢?是我还是听起来很慢,循环一个单词的每个字符,循环一个接受的字符数组并测试每个组合

你知道一个好办法吗


谢谢。

RE's速度很快,而且它们是最好的选择。创建所需字符的列表,然后反转匹配感,如下所示

if re.match(".*[^abcA-Z]", "d"):
  print "Your string has illegal characters"

看来你很关心速度。为什么不使用JavaScript?因为我更喜欢服务器端的数据验证。我担心速度,但我想到的解决方案真的很慢吗?也许我错了。正则表达式应该很好,在你知道你的瓶颈在哪里之前,不要担心它的速度有多快(提示:它们可能不是你想象的那样)。谢谢。我想我会坚持这种方法。