- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试取消选择选择之前或之后出现的标点符号,并使用单词扩展功能。例如我有这个注释:
(56.87%), α-cadinol (Bold text is highlighted text "," is included)
我尝试得到以下内容:
(56.87%), α-cadinol (Bold text is highlighted text)
我尝试过以下方法:
var sel = rangy.getSelection();
var range = sel.getRangeAt(0);
var selectedText = range.text();
// Trim start
var match = /^\s*\.*\,*\"*\'*\;*\“*\-*\s*/.exec(selectedText);
if (match) {
range.moveStart("character", match[0].length);
}
// Trim end
match = /\s*\.*\,*\"*\'*\;*\”*\-*\s*$/.exec(selectedText);
if (match) {
range.moveEnd("character", -match[0].length);
}
sel.setSingleRange(range);
sel.expand("word", {
trim: true
});
但无法正常工作。第一部分单独工作,但第二部分不起作用,因为它会导致以下结果:
(56.87 %), α-cadinol (Bold text is highlighted text)
最佳答案
一切看起来都不错。问题在于 Rangy 用于确定单词构成的默认正则表达式非常简单。幸运的是,您可以在传递的扩展选项中覆盖它。这里的例子也只是作为解决当前问题的起点;对于一般用途来说,它显然过于简单,但应该作为一个起点。
sel.expand("word", {
trim: true,
wordOptions: {
wordRegex: /[a-z0-9α]+(['\-][a-z0-9α]+)*/gi
}
});
关于javascript - Rangey如何在没有符号的情况下扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29260835/
看起来最新的 Alpha 版本的 rangy 已经弃用了 createNodeIterator() 方法,并用更通用的 createIterator() 方法代替。使用它的语法似乎也有点不同。 假设用
我正在考虑在网页上实现一个简单的 2 按钮切换,以在 H1 标题和 H2 标题之间切换某些选定的文本。 SurroundContents 方法效果很好,但是在尝试替换现有的父标记元素节点时遇到了问题。
我制作了一个带有一些清理逻辑的小型内联编辑器。因此,如果您从 Word 文件粘贴,它会删除所有格式。 我的问题是,如果您选择例如一句话粘贴,不会被替换。这是由于清理逻辑。现在我需要知道如何删除范围,以
已解决: Updated version on jsfiddle 感谢 Jainil Nagar 发现了问题。 这对我来说实在是不清楚。我正在尝试使用rangyinputs jquery plugin
我正在尝试制作一个类似 twitter 的富文本编辑器,其中超出字符限制的字符会突出显示。我看到this question并尝试编辑它。 我使用了 Kendo UI 的编辑器,还使用了 Tim Dow
根据我所做的研究,Rangy 似乎是保存/恢复选择的最佳方式。但是,我无法让它工作。 我包含了核心文件和选择文件、保存文件和恢复文件。我有一个按钮,单击时会触发以下操作: savedSel = ran
我有一个相当复杂的 Vue 组件,其中涉及一个 contenteditable div。我想使用 Rangy 突出显示此 div 中的单词并添加其他标记,即使在编辑文本时也保留此标记。 最初,我打算发
我是一名优秀的程序员,十分优秀!