用重音字母替换预置字符 [英] Preg replace with accent letters

查看:18
本文介绍了用重音字母替换预置字符的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试在字符串中的名称后插入分隔符。但是,名称可以包含类似é

的字符
$string = 'Test string';
$name = 'Tést';

$replacement = '$0<br />$1';
return preg_replace("/^$name/i", $replacement, $string);

我希望此邮件返回:

Test<br /> string
Tést也可以是这样的:Héllo、byé或naul 这应该是可能的,对吗?

提前感谢

推荐答案

我使用类似的东西来校对口音:

$collate = [
    "À-Æ" => "A", "à-æ" => "a", "Ç"   => "C", "ç"   => "c",
    "È-Ë" => "E", "è-ë" => "e", "Ì-Ï" => "I", "ì-ï" => "i",
    "Ñ"   => "N", "ñ"   => "n", "Ò-Ø" => "O", "ò-ø" => "o",
    "ß"   => "s", "Ù-Ü" => "U", "ù-ü" => "u", "Ý"   => "Y", "ý" => "y"
];

$string = "Test string";
$name = "Tést";

foreach($collate as $from => $to) {
    $name = preg_replace("/[".$from."]/", $to, $name);
}
// echo $name; => "Test"

return preg_replace("/^".$name."/", "$0<br />", $string);
// result: "Test<br /> string"

这篇关于用重音字母替换预置字符的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆