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>