在javascript中是空的空白
是否有一个JavaScript等价于isNullOrWhitespace,所以我可以检查客户端的文本框是否有任何文本,不只是空格或空/空?
我宁愿在客户端做这件事,比回发内容和validation服务器端,即使我也会这样做。
谢谢!
很容易推出自己的 :
function isNullOrWhitespace( input ) { if (typeof input === 'undefined' || input == null) return true; return input.replace(/\s/g, '').length < 1; }
对于一个简洁的现代跨浏览器实现,只要做到:
function isNullOrWhitespace( input ) { return !input || !input.trim(); }
这是jsFiddle 。 下面的注释。
目前接受的答案可以简化为:
function isNullOrWhitespace( input ) { return (typeof input === 'undefined' || input == null) || input.replace(/\s/g, '').length < 1; }
并利用谬误,甚至进一步:
function isNullOrWhitespace( input ) { return !input || input.replace(/\s/g, '').length < 1; }
trim()在所有最新的浏览器中都可用 ,所以我们可以select删除正则expression式:
function isNullOrWhitespace( input ) { return !input || input.trim().length < 1; }
并添加更多的狡猾的混合,产生最终(简化)的版本:
function isNullOrWhitespace( input ) { return !input || !input.trim(); }
不,但你可以写一个
function isNullOrWhitespace( str ) { // Does the string not contain at least 1 non-whitespace character? return !/\S/.test( str ); }
document.formname.formelement.value == ''
为我做了诡计!
编辑:检查这个链接
您可以使用正则expression式/\S/
来testing一个字段为空或空白。
例如:
if(textBoxVal.match(/\S/){ // field is invalid (empty or spaces) }
你必须自己写:
function isNullOrWhitespace(strToCheck) { var whitespaceChars = "\s"; return (strToCheck === null || whitespaceChars.indexOf(strToCheck) != -1); }
trim()
是一个有用的string函数,JS缺失..
添加它:
String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g,"") }
然后: if (document.form.field.value.trim() == "")
拉两个最好的答案的相关部分,你会得到这样的东西:
function IsNullOrWhitespace(input) { if (typeof input === 'undefined' || input == null) return true; return !/\S/.test(input); // Does it fail to find a non-whitespace character? }
这个答案的其余部分只针对那些对这个答案和德克斯特答案之间的performance差异感兴趣的人。 两者都会产生相同的结果,但是这个代码稍微快一点。
在我的电脑上,对以下代码使用QUnittesting:
var count = 100000; var start = performance.now(); var str = "This is a test string."; for (var i = 0; i < count; ++i) { IsNullOrWhitespace(null); IsNullOrWhitespace(str); } var end = performance.now(); var elapsed = end - start; assert.ok(true, "" + count + " runs of IsNullOrWhitespace() took: " + elapsed + " milliseconds.");
结果是:
- RegExp.replace方法= 33 – 37毫秒
- RegExp.test方法= 11 – 14毫秒