preg_replace不允许我在搜索中添加空格

时间:2014-03-04 23:35:28

标签: php html search preg-replace search-engine

我的代码似乎没有让我在我的搜索框中放置空格,如果我搜索“hello world”它会将其搜索为“helloworld”。我正在使用preg_replace所以不允许人们放置其他符号(“'!@#$%^& ()~` + - //)但是字母。为什么要替换空格?

代码:

$search = preg_replace ("#[^0-9a-z]#i","",$search);

1 个答案:

答案 0 :(得分:1)

好的,让我为你分解一下。因为它是你的正则表达式寻找

[^0-9a-z]

^ - 表示正则表达式中的否定(不完全是,它表示“除......之外的所有内容”),然后跟随两个范围:0-9和a-z。这意味着任何不属于这两个精确集的字符都将被此表达式捕获。这包括阿拉伯字符,特殊字符和空格。为了使其按预期工作,您必须为表达式添加空间:

[^0-9a-z ]

你必须记住,正则表达式非常直观,几乎没有余地。