【发布时间】:2015-01-01 09:43:17
【问题描述】:
我正在尝试通过用跨度包围来动态替换一些文本。
例子:
一个人正在打字,当他们输入“backwards”这个词和后面的空格时,它会使整个句子或包含该词的行变为粗体。
现在我已经为它设置了一个 CSS 类,我一直在尝试将它放入一个跨度中,但我不确定它是否有效......它也会在任何新的事情发生时重置,所以光标会跳回来到开始,它不让我前进。
这是我目前所拥有的(我的正则表达式现在也是错误的):
function replace(e) {
if (e.keyCode == 13) {
element = document.getElementById("script");
rg = /^INT/;
element.innerHTML = element.innerHTML.replace(
rg,
'<span id="bold">$1</span>'
);
};
};
<div contenteditable="true" id="script" style="width: 100%; height: 500px; border: 1px solid black;" onkeydown="replace(event)">
Replace
</div>
【问题讨论】:
-
由于
^,您的正则表达式会在字符串的开头查找 INT。通过将 INT 包裹在括号中来捕获它。您的替换功能现在仅在返回后触发。这是故意的?
标签: javascript html css regex