我的代码似乎没有让我在我的搜索框中放置空格,如果我搜索“hello world”它会将其搜索为“helloworld”。我正在使用preg_replace
所以不允许人们放置其他符号(“'!@#$%^& ()~` + - //)但是字母。为什么要替换空格?
代码:
$search = preg_replace ("#[^0-9a-z]#i","",$search);
答案 0 :(得分:1)
好的,让我为你分解一下。因为它是你的正则表达式寻找
[^0-9a-z]
^ - 表示正则表达式中的否定(不完全是,它表示“除......之外的所有内容”),然后跟随两个范围:0-9和a-z。这意味着任何不属于这两个精确集的字符都将被此表达式捕获。这包括阿拉伯字符,特殊字符和空格。为了使其按预期工作,您必须为表达式添加空间:
[^0-9a-z ]
你必须记住,正则表达式非常直观,几乎没有余地。