删除删除线unicode文本?

时间:2014-09-08 21:02:41

标签: php regex

我偶尔会收到用户的意见,他们正在使用那些恼人的stikethrough文本生成器而且它会破坏我的代码。

我已经尝试了一些我在这里找到的代码......

$string = preg_replace('/[\x00-\x1F\x80-\xFF]/', '', $string);

它有效,但我只需要替换组合的长笔画叠加层。

http://www.fileformat.info/info/unicode/char/0336/index.htm

然而,单独将此添加到我的正则表达式并不能解决问题。它一无所获。

帮助!

1 个答案:

答案 0 :(得分:2)

我不确定这是否完全有效,但对于我测试的内容,它会删除删除线。 感谢@Jonny 5提及\xCC\xB6

$text = "s̶t̶r̶i̶k̶e̶t̶h̶r̶o̶u̶g̶h̶";
$st = "\xCC\xB6";/*seems to work best even with other alphabets*/
/*[chr(204), chr(182)];#add others if necessary?*/
var_dump($text);
if(preg_match("#[" . $st . "]#", $text)){/*preg_match("#[" . implode('|', $st) . "]#", $text)*/
    $text = str_replace($st, '', $text);
}
var_dump($text);