如何限制用户输入#& 。在内容可编辑为真的标签中?

时间:2015-04-28 12:28:58

标签: javascript jquery

使用Bootstrap表单构建器,我想知道如何限制用户将#.输入到标签的属性中,其中contenteditable为真。

我希望将其用于任何要编辑的随机标签。怎么做?

我知道ascii的值,但对于内容可编辑为true时该页面中的所有标签,我希望用户不要在其中输入#.

我的标签样本是:

<label>
    <strong contenteditable="true">Telephone</strong>
</label>

我尝试使用此功能,但不会阻止它输入#&amp;

$('body').on('paste input', '[contenteditable]', function(data) {
var text = $(this).text();
    if (text == '#' || text == '.'){
        console.log('hi');
    data.preventDefault();
} 
});

立即工作

$('body').on('paste input', '[contenteditable]', function(data) {
var text = $(this).text();
var regax1 = /#/;
var regax2 = /./;
if (text.match(regax1)) {
   var newText = text.replace('#', '');
   $('strong').text(newText);
        }
    });
});

2 个答案:

答案 0 :(得分:0)

我不知道引导程序表单构建器,但您可以在每个输入上使用onkeyup事件轻松完成此操作。

当用户按某个键时,查看键码,如果您不喜欢此键,请删除最后一个字符。 或者在每个onkeyup上使用regexp替换坏字符。

答案 1 :(得分:0)

你去了:

jQuery(document).ready(function($) {
    $('body').on('paste input', '[contenteditable]', function(data) {
        var text = $(this).text();

        if(text.match(/#/g).length > 0) {
            var newText = text.replace('#', '');
            $('strong').text(newText);
        } 
    });
});

这是笔:http://codepen.io/ciprian/pen/BNyqbv