符文图书馆Javascript

时间:2018-02-23 15:41:43

标签: javascript emoji

快速问题,我正在整理一些笔记,每当我想为他们的工具提示排序时,从表情符号开始我遇到了问题(原因.substr(0,1)给了我?(表情符号取2)。所以既然如此我想保留工具提示" HELLO" - 作为H.对于表情符号,我需要使用.substr(0,2),但是所有其他音符都有2个Chars,例如.Hello是HE。

然而我发现了符文https://www.npmjs.com/package/runes

所以现在问题是我不想重复并且通过runes.substr运行每个音符("我的许多注意事项",1)我想做一个变量跑步者。

示例

var str = "Hello world!";
var res = str.substr(0,1); 

正如你可以看到JS只是说 str .substr,我的问题是我如何做str.runes.substr或任何其他方式来实现同样的事情。提前谢谢!

var runes = require("runes")    
var tooltip = 'sdas dsa'
tooltip.runes.substr(0, 1);

2 个答案:

答案 0 :(得分:0)

runes.substr(tooltip,0,1) - 将是一个解决方案

答案 1 :(得分:0)

首先,我会回答您的问题,但请阅读底部附近的警告

从技术上讲,您可以String.prototype.func = someFunc使其在字符串中可用:



String.prototype.reverseAndCaps = function () { return `${this}`.split('').reverse().join('').toUpperCase() };

console.log("hello".reverseAndCaps());




在这样的内部函数中,您使用this来引用字符串(通常需要将其转换为字符串以获取原始形式)。

因此,对于您的runes,您可以执行以下操作:



Object.assign(String.prototype, { runes: function() { 
  // replace this object with `runes` itself
  return {
    substr: (...args) => this.substr.apply(this, args)
  }; 
} });

console.log("hello".runes().substr(0, 2));




请注意,runes()需要包含在函数中才能正确绑定"这个"。您可以使用其他方法来不必这样做,但它们必须应用于每个字符串。

所有这一切,高度建议您不要这样做。更改原语可能会导致各种意外的副作用,并使您的代码更难以维护,因为您有各种神奇的额外内容,这些内容可能并不明显,无论它们来自哪里。

更不用说,runes.substr(str, 0, 1)并不比str.runes.substr(0, 1)更短。