Javascript 如何检查客户端的文本是否都是空白字符?
如何检查用户输入的文本在客户端是否都是空白字符(空格、制表符、回车等)?Javascript 如何检查客户端的文本是否都是空白字符?,javascript,jquery,Javascript,Jquery,如何检查用户输入的文本在客户端是否都是空白字符(空格、制表符、回车等)?/^\s+$/.test(userText) 将+更改为*,以将空字符串'作为正匹配包含在内 编辑 通常情况下,您需要从用户输入的文本中删除空白,并简单地测试它是否为非空: userText = userText.replace(/^\s+/, '').replace(/\s+$/, ''); if (userText === '') { // text was all whitespace } else {
/^\s+$/.test(userText)
将+
更改为*
,以将空字符串'
作为正匹配包含在内
编辑
通常情况下,您需要从用户输入的文本中删除空白,并简单地测试它是否为非空:
userText = userText.replace(/^\s+/, '').replace(/\s+$/, '');
if (userText === '') {
// text was all whitespace
} else {
// text has real content, now free of leading/trailing whitespace
}
像这样
function isEmpty(str) {
return str.replace(/^\s+|\s+$/g, '').length == 0;
}
如果您想查看文件是否包含所有空白或为空,我建议测试反转并反转结果。这样您就不必担心空字符串的特殊情况 所有空白与无非空白相同,因此:
function isWhitespaceOrEmpty(text) {
return !/[^\s]/.test(text);
}
如果不需要空字符串,可以稍微修改:
function isWhitespaceNotEmpty(text) {
return text.length > 0 && !/[^\s]/.test(text);
}
这个问题用jQuery标记。在jQuery中,可以运行以下操作:
if ( $.trim( $('#myInput').val() ) == '' )
alert('input is blank');
这也将有助于:
var text = " ";
text.trim().length == 0; //true
Josh的答案与此非常接近,但根据w3schools(2014年5月)的数据,答案如下:
function isEmpty(str) {
return str.replace(/^\s+|\s+$/gm,'').length == 0;
}
一些对我有用的东西:
$("#example_form").validate({
rules: {
example_field: {
required: {
depends: function () {
$(this).val($.trim($(this).val()));
return true;
}
}
},
},
messages: { example_field: {required: "Custom Validation Message for example_field"}, }
});
要查找JavaScript生成的空白以及元素之间的空白,请使用:
var trimmed = $.trim( $('p').text() );
if ( trimmed === '' ){
//function...
}
密码*
var无效=/\s/;
var value=“ur value,带有类似于”或“”的空格;
if((无效的.test(值))){
控制台日志(“空白”);
}如果(!inValid.test(value)),则为else{
控制台日志(“无空间”);
}
/*在此代码中,无效变量hold rg=正则表达式,如
/\s/
\s=空白
更多内容将在链接中讨论:
http://www.javascripter.net/faq/regularexpressionsyntax.htm */
yo,我们可以简单地检查bt trim,因为javascript被标记为有问题的
console.log('''.trim()=='')//检查所有空白
console.log(“”.trim()=“”)//检查所有空选项卡
console.log('\n\n'.trim()=='')//检查所有空回车(空新行)
console.log('\n'.trim()='')//检查所有空格、制表符和新行
/^start string
//| |\s+空白一次或多次
//| | |$=结束字符串
// || || ||
// \/ \/ \/
常量isAllWhiteSpace=/^\s+$/.test(myvalue)
FWIW/^\s\s*/比/^\s+/快,如果我错了,请纠正我,但以下内容与双替换不一样吗?x、 替换(/^\s*(.*?\s*$/,“$1”);如果您不懂正则表达式,请准备好爆炸。@GabRoyer,不懂jQuery,它不会!请参阅下面MacAnthony的答案。这在所有浏览器中都不起作用。请看MacAnthony的回答。有趣的是,我想知道这是更快还是正则表达式解决方案更快。我不确定这在哪些浏览器中不起作用(我很好奇),但我刚刚在Chrome(62.0.3202.94)、Firefox(59.0)和Safari(11.0.1)中进行了测试,它在这些浏览器中工作。@BradyDowling在IE<9中不起作用。当我阅读正则表达式时,我读到:“检查以空格开头的字符串”,但当您键入“abc”时它怎么会起作用?您读取的正则表达式不正确。[^\s]表示任何非空白字符。虽然此代码可以回答问题,但提供有关如何和/或为什么解决问题的附加上下文将提高答案的长期价值。
<div class="col-sm-6 col-md-6 col-xs-6">
<label for="password">Password* <small id="pass-status"></small></label>
<input type="password" id="password" name="password" class="form-control my-metro-inputs my-metro-input-border my-metro-input-padding" placeholder="password" value="" required onfocusout="passwordChecker(this)">
</div>