javascript – 当匹配键/值对中的键(及其对应值)时替换字符串

我正在尝试使用
javascript / jQuery在< abbr title =“”>中的段落中包装任何缩写.标签.

例如,在一篇句子中,WHO eLENA澄清了有关拯救生命的营养干预的指导,并协助扩大营养不良的行动,WHO和eLENA都将包含在< abbr>中.标签.我想要title属性来显示缩写的扩展版本;即WHO =世界卫生组织.

什么是实现这一目标的最佳方式?我对javascript / jQuery有点新意,所以我在这里瞎扯.到目前为止,我已经创建了一个包含所有缩写作为键/值对的变量,我可以替换缩写的特定实例,但不是很多.

最佳答案 首先,你必须准确地确定你将用于选择替代品的标准 – 我建议在一个单词边界上进行,这样“我与世界卫生组织合作”将把“世界卫生组织”包裹在一个简短的边界,但是“我不会接触我的自行车” REGRET IT“不会缩写”WHO“.你还应该决定你是否会区分大小写(可能你想成为,所以“刚进来的那个人”不会缩写为“who”.)

>使用jQuery来递归文档中的所有文本.这可以使用.children选择器完成,并逐步执行元素并读取所有文本.
>对于每个文本节点,将文本拆分为单词.
>对于每个单词,在密钥值存储区中查找它以查看它是否与密钥匹配.如果是,请获取值,并构造一个新元素< abbr title =“value”> key< / abbr>.
>将文本节点分解为a)缩写前的文本(文本节点),b)缩写本身(元素),以及c)缩写后的文本(文本节点).将所有三个插入原始文本节点的父节点的子节点,替换原始文本节点.

这些步骤中的每一步都需要一些工作并查找一些API文档,但这是基本过程.

点赞