喜欢在中英文间插入空格的博主都知道,WPpreg_replace
当然插件也不是完美无缺,毕竟自动插入空格后会导致复制文本时带入额外空格,以及中英文间的空格过宽且无法单独自定义。
还有个偷懒办法是直接设置letter-spacing: 0.15rem
,但所有文本都相应宽了。
改进方法:
- 正则表达式将
' '
替换为'<span class="space"></span>'
- CSS
中设置 .space {margin:0 0.1rem;}
代码举例:
$content = preg_replace('~(\p{Han})([a-zA-Z0-9\p{Ps}\p{Pi}])(?![^<]*>)~u', '\1'.'<span class="space"></span>'.'\2', $content);
效果:




注:<span>
Jack
好棒,居然还有这样的插件!强迫症狂喜
两年前 Microsoft Edge 110 · iPhone iOS 16.3S
@Jack 哈哈哈
两年前 Microsoft Edge 110 · Mac OS X 10.15木頭人
已复制粘贴,感谢。
两年前 Google Chrome 110 · Windows 10S
@ 木頭人 不客气。
两年前 Microsoft Edge 110 · Mac OS X 10.15不亦乐乎
我是习惯性在输入英文和数字的时候两边敲一下空格。
两年前 Microsoft Edge 110 · Windows 10S
@ 不亦乐乎 这是个好习惯,就是对懒人不适用
两年前 Microsoft Edge 110 · Windows 10网友小宋
中文输入好像会有点间隙吧!英文没有
两年前 Microsoft Edge 110 · Windows 10S
@ 网友小宋 Windows 下有一丢丢,Mac 下没有。
两年前 Microsoft Edge 110 · Windows 10木瓜园
,我现在是手动加 space
两年前 Safari 13 · iPhone iOS 13.6S
@ 木瓜园 手动就有点累,有违懒惰之宗旨。
两年前 Microsoft Edge 110 · Windows 10木瓜园
@S 是的,手动麻烦。
两年前 Safari 13 · iPhone iOS 13.6能否换个思路,发日志的时候处理,在写入系统之前替换,不用每次读取做替换,性能会有提升。
S
@ 木瓜园 这应该不难,甚至写个比如 bat 脚本线下处理都行。
两年前 Microsoft Edge 110 · Windows 10木瓜园
@S 我准备踩坑试试
两年前 Google Chrome 110 · Windows 10S
@ 木瓜园 
两年前 Microsoft Edge 110 · Windows 10