如何用unicode字符替换所有小写字母k的实例?我有一个webfont加载,默认的k非常难看,所以我想换一个替代字符(unicode 006b)
一直在尝试这些方面的东西,但它还不起作用:
$(this).html($(this).text().replace(/k/g,"\006b"));
答案 0 :(得分:3)
几乎在那里,为u
(在JS中)添加Unicode
$(this).html($(this).text().replace(/k/g,"\u006b"));
示例: 将k
替换为Unicode" k" 006b
十六进制
var $el = $("#test")
$el.html($el.text().replace(/k/g,"\u006b"));

<div id="test">kelly klarkson</div>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
仍然不起作用?这是因为font-family
设置 - 这意味着即使您用Unicode值替换k
- 同样风格化字符可能会出现,因为它在相同的Unicode空间值中结算。解决方法是将其替换为不同的font-family
,如:
var $el = $("#test")
$el.html($el.text().replace(/(k)/g,"<span class='arial'>$1</span>"));
&#13;
#test {
font: 16px/1.4 "Times New Roman", Times, serif;
}
.arial { /* JS-fix ugly "k" */
font: 22px/1.4 Arial, sans-serif;
}
&#13;
<div id="test">kelly klarkson</div>
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
如果你是设计师,我总是建议你在字体编辑器中打开那个愚蠢的字体,编辑所需的字符并保存为otf, ttf并通过附加查询来加载新的字体版本{ {1}}到您的字体网址,以确保浏览器提取已编辑的字体。
提示/提醒Unicode十六进制
?v=2
&#x<hex>;
"\u<hex>"
答案 1 :(得分:0)
也许更简洁的方法是仅使用CSS
unicode-range
属性允许您定义将使用字体的字符:
@font-face {
font-family: 'l';
src: local('Comic Sans MS');
unicode-range: U+006C; /* target only the letter 'l' */
}
div {
font-size: 4em;
font-family: l, cursive;
}
&#13;
<div>Hello World</div>
&#13;