【发布时间】:2020-03-25 20:41:35
【问题描述】:
我正在尝试验证 contenteditable 值是否只有空格/空格。在我的示例中,如果该值只有空格/空格,则根据我的正则表达式字符串它不应该匹配,但它不能按预期工作。当我输入完整的空格时,它会保持匹配。
编辑:黑色区域是您可以输入文本的地方。
https://jsfiddle.net/j1kcer26/5/
JS
var checkTitle = function() {
var titleinput = document.getElementById("artwork-title").innerHTML;
var titleRegexp = new RegExp("^(?!\s*$).+"); //no blank spaces allowed
if (!titleRegexp.test(titleinput)) {
$('.start').removeClass('active-upload-btn');
console.log('no match')
} else if (titleRegexp.test(titleinput)) {
$('.start').addClass('active-upload-btn');
console.log('match')
}
};
$('#artwork-title').on('keyup change input', function() {
checkTitle();
});
HTML
<div class="post-title-header">
<span class="user-title-input title-contenteditable maxlength-contenteditable" placeholder="enter text here" contenteditable="true" name="artwork-title" id="artwork-title" autocomplete="off" type="text" spellcheck="false">
</span>
</div>
<div class="start">
turn red if match
</div>
【问题讨论】:
-
您是否有
innerHTML设置为与预期不匹配的示例? -
黑色空间是输入字段,抱歉我应该说清楚。
-
innerHTML 充满了 和其他实体,而不是实际的空格。
标签: javascript jquery html regex