【发布时间】:2014-08-29 18:23:39
【问题描述】:
我有一个 PHP/Ajax 搜索功能,它返回包含在文本框中输入的字符的所有国家/地区。所有这些国家都被列出,并且给定的字符在列表中它的名字的国家内被标记为粗体。
示例 文本框中给出的字符:“Af” 哪个返回 Af 加尼斯坦和南 Af rica - 中间没有空格
现在数据库中的所有国家名称当然都以大写字母开头。但是
preg_replace()
找不到大小写字母的区别。因此,当我在文本框中输入“a”时,它将返回 Afgh a nist a n 请注意第一个大写“A”未设为 bold
这是我正在使用的代码
$display_name = preg_replace("/" . $search_string . "/", "<b>" . $search_string . "</b>", $result['Country_Name']);
$display_url = '';
$output = str_replace('NameReplace', $display_name, $HTML);
$output = str_replace('UrlReplace', $display_url, $output);
echo($output);
我可以“修复”这个问题,将“/i”修饰符添加到 preg_replace() 根据 PHP.net,它将执行以下操作:
i (PCRE_CASELESS) 如果设置了此修饰符,则模式中的字母匹配大小写字母。
这将根据文本框内的字符将国家名称内的粗体字符变为小写或大写
示例: 文本框中给出的字符:“A”将返回“A fgh A nist A n” 而 "a" 将再次返回 "a fgh a nist a n" 请忽略空格。
当我输入:“a”时,我怎样才能做到这一点 它将返回“A fgh a nist a n”?
谢谢
【问题讨论】:
标签: php preg-replace uppercase lowercase modifier