如何使用jQuery用unicode字符替换所有小写k的实例?

时间:2018-02-12 00:18:03

标签: jquery replace

如何用unicode字符替换所有小写字母k的实例?我有一个webfont加载,默认的k非常难看,所以我想换一个替代字符(unicode 006b)

一直在尝试这些方面的东西,但它还不起作用:

$(this).html($(this).text().replace(/k/g,"\006b"));

2 个答案:

答案 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;
&#13;
&#13;

仍然不起作用?这是因为font-family设置 - 这意味着即使您用Unicode值替换k - 同样风格化字符可能会出现,因为它在相同的Unicode空间值中结算。解决方法是将其替换为不同的font-family,如:

&#13;
&#13;
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;
&#13;
&#13;

如果你是设计师,我总是建议你在字体编辑器中打开那个愚蠢的字体,编辑所需的字符并保存为otf, ttf并通过附加查询来加载新的字体版本{ {1}}到您的字体网址,以确保浏览器提取已编辑的字体。

提示/提醒Unicode十六进制

  • HTML:?v=2
  • JS:&#x<hex>;
  • CSS:"\u<hex>"

答案 1 :(得分:0)

也许更简洁的方法是仅使用CSS unicode-range属性允许您定义将使用字体的字符:

&#13;
&#13;
@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;
&#13;
&#13;