正则表达式
Regular Expression
如果文本输入包含双引号但后面没有反斜杠,我需要显示警告。所以我使用 'negative lookbehind' 正则表达式并实现了这个目标。
text.innerHTML.match(/(?<!\)\"/);
" -> 警报
\" -> 确定
但是,我发现一个问题,当用户在文本框中输入缩进时,所见即所得(Quill)会生成一个名为“ql-indent-N(缩进级别从 1 开始)”的 class,这会触发通过 " 检测发出警报。
因此,我在原始正则表达式中添加了另一个例外,如下所示。
text.innerHTML.match(/(?<!\)(?<!class=)\"/);
但它没有用,所以我在控制台中尝试了一些测试,然后看到了
当我刚放
时它工作正常
class="
-> 确定
然而,当它在像
这样的真实标签中时它不起作用
文本
-> 警报
我怎样才能使后视 reg exp 与那些
一起正常工作?或者任何其他实现相同目标的慷慨建议——显示双引号的警告,后面没有反斜杠,也没有
?下面是文本框的基本结构。
<div class="ql-editor" data-gramm="false" contenteditable="true">
<p>text</p>
</div>
Dealing Quill 的 delta 格式非常复杂。
如评论中所述,您可以引用元素 innerText
而不是其 innerHTML
以忽略所见即所得编辑器插入的任何标签。
示例(这里我使用 RegExp.prototype.test()
而不是 RegExp.prototype.match()
)
const qEditor = document.querySelector('.ql-editor');
const re = /(?<!\)"/gm;
qEditor.addEventListener('input', () => {
if (re.test(qEditor.innerText)){
window.alert('All double-quotes (") must be escaped (\")');
}
})
<link href="https://cdn.quilljs.com/1.3.6/quill.snow.css" rel="stylesheet">
<div id="editor" class="ql-editor" data-gramm="false" contenteditable="true">
<p>text</p>
</div>
<script src="https://cdn.quilljs.com/1.3.6/quill.js"></script>
<script>
var quill = new Quill('#editor', {
theme: 'snow'
});
</script>
如果文本输入包含双引号但后面没有反斜杠,我需要显示警告。所以我使用 'negative lookbehind' 正则表达式并实现了这个目标。
text.innerHTML.match(/(?<!\)\"/);
" -> 警报
\" -> 确定
但是,我发现一个问题,当用户在文本框中输入缩进时,所见即所得(Quill)会生成一个名为“ql-indent-N(缩进级别从 1 开始)”的 class,这会触发通过 " 检测发出警报。
因此,我在原始正则表达式中添加了另一个例外,如下所示。
text.innerHTML.match(/(?<!\)(?<!class=)\"/);
但它没有用,所以我在控制台中尝试了一些测试,然后看到了
当我刚放
时它工作正常
class="
-> 确定
然而,当它在像
这样的真实标签中时它不起作用
文本
-> 警报
我怎样才能使后视 reg exp 与那些
一起正常工作?或者任何其他实现相同目标的慷慨建议——显示双引号的警告,后面没有反斜杠,也没有
?下面是文本框的基本结构。
<div class="ql-editor" data-gramm="false" contenteditable="true">
<p>text</p>
</div>
Dealing Quill 的 delta 格式非常复杂。
如评论中所述,您可以引用元素 innerText
而不是其 innerHTML
以忽略所见即所得编辑器插入的任何标签。
示例(这里我使用 RegExp.prototype.test()
而不是 RegExp.prototype.match()
)
const qEditor = document.querySelector('.ql-editor');
const re = /(?<!\)"/gm;
qEditor.addEventListener('input', () => {
if (re.test(qEditor.innerText)){
window.alert('All double-quotes (") must be escaped (\")');
}
})
<link href="https://cdn.quilljs.com/1.3.6/quill.snow.css" rel="stylesheet">
<div id="editor" class="ql-editor" data-gramm="false" contenteditable="true">
<p>text</p>
</div>
<script src="https://cdn.quilljs.com/1.3.6/quill.js"></script>
<script>
var quill = new Quill('#editor', {
theme: 'snow'
});
</script>