用开箱即用的jquery测试空字符串的最好方法是什么,即没有插件?我试过这。
但至少在开箱即用时行不通。使用内置的东西会很好。
我不想重复
if (a == null || a=='')
如果一些if (isempty(a))可用,则在任何地方。
if (isempty(a))
if(!my_string){ // stuff }
而且
if(my_string !== "")
如果你想接受空值但拒绝空值
编辑:哎呀,忘记你的条件是如果它是空的
if (!a) { // is emtpy }
忽略字符串中的空格:
if (!a.trim()) { // is empty or whitespace }
如果您需要对trim()的遗留支持(IE8-),请使用$.trim或polyfill。
trim()
$.trim
你给出的链接似乎在尝试与你试图避免重复的测试不同的东西。
测试字符串是空字符串还是空字符串。您链接到的文章将测试字符串是否完全由空格组成(或为空)。
您描述的测试可以用以下方法代替:
if (!a)
因为在javascript中,空字符串和null在布尔上下文中的值都是false。
尝试在浏览器控制台或node.js repl中执行此命令。
var string = ' '; string ? true : false; //-> true string = ''; string ? true : false; //-> false
因此,一个简单的分支结构就足够测试了。
if(string) { // string is not empty }
因为你也可以输入数字以及固定类型的字符串,答案实际上应该是:
function isBlank(value) { return $.trim(value); }
试试这个
if(!a || a.length === 0)
用jQuery检查data是否为空字符串(并忽略任何空白):
function isBlank( data ) { return ( $.trim(data).length == 0 ); }
基于大卫的回答,我个人喜欢首先检查给定的对象,如果它是一个字符串。否则,在一个不存在的对象上调用.trim()将引发异常:
.trim()
function isEmpty(value) { return typeof value == 'string' && !value.trim() || typeof value == 'undefined' || value === null; }
用法:
isEmpty(undefined); // true isEmpty(null); // true isEmpty(''); // true isEmpty('foo'); // false isEmpty(1); // false isEmpty(0); // false
if((a.trim()=="")||(a=="")||(a==null)) { //empty condition } else { //working condition }