用户应该在textarea中输入一些信息(在我的情况下是p标签内),主要是字符串。但是,我想阻止用户只输入空格[连续多个空格],我将提醒他要求输入有意义的内容。我如何检查这种情况? "if there are no normal alphabets; then alert blahblah"
是一个有效的逻辑吗?我该如何编码呢?
$("#saveText").click(function() {
var grabbed = $(".froala-element p").text();
if (grabbed === "") {
alert("No cheating :) Please type something.");
} else {
alert(grabbed);
}
});
这就是我到目前为止所做的一切。欢迎使用jQuery解决方案。
答案 0 :(得分:3)
你可以test针对只代表空格(/^\s*$/
)的正则表达式:
$("#saveText").click(function() {
var grabbed = $(".froala-element p").text();
if (/^\s*$/.test(grabbed)) {
alert("No cheating :) Please type something.");
} else {
alert(grabbed);
}
});
这会处理常规空格,制表符,换行符等,以及没有输入的情况。
正则表达式本身分解如下:
^ Beginning of the string
\s Any whitespace character
* Zero or more occurrences of previous
$ End of the string
您也可以使用/\S/
来转动测试并检查是否存在至少一个非空白字符,这可能会稍微提高效率。
答案 1 :(得分:0)
如果文字在'p'标签中,您的代码就可以了,如果是textarea,则应该是:
var grabbed = $(".froala-element textarea").val();
答案 2 :(得分:0)
尽量倾听'模糊'并且'粘贴'确保用户无法输入空白字符的事件,如下所示: -
http://jsfiddle.net/chetanbh/024jvy5h/
$('#type_something').on('paste', function(event){
var element = this;
setTimeout(function () {
var text = $(element).val();
if(text.trim().length <= 0) {
alert('Sorry, paste something else, not empty string');
$(element).val('');
}
}, 100);
});
$('#type_something').on('blur', function(event){
var element = this;
var text = $(element).val();
if(text.trim().length <= 0) {
alert('Sorry, type something else, not blank characters');
$(element).val('');
}
});