简体   繁体   English

连接时如何检查错误的字符串值?

[英]How to check for falsey string value when concatenating?

In the following examples both ex1 & ex2 variables will render an empty string with a space and not a falsy value.在下面的示例中,ex1 和 ex2 变量都将呈现一个带有空格的空字符串,而不是一个虚假值。 Whereas ex3 will be falsy and render the right side of the ||而 ex3 将是假的并呈现 || 的右侧operator.操作员。 How can I test for empty string in the first two examples without doing an if statement?如何在不执行 if 语句的情况下测试前两个示例中的空字符串?

let var1 = '';
let var2 = '';
let ex1 = `${var1} ${var2}` || "Is Falsy";
let ex2 = var1 + ' ' + var2 || "Is Falsy";
let ex3 = var1 || "Is Falsy";

i think this will work for you:我认为这对你有用:

let ex2 = var1 ||让 ex2 = var1 || var2 ||变量2 || "Is Falsy"; “是假的”;

Are ternary operators acceptable?三元运算符可以接受吗?

let ex1 = var1 && var2 ? `${var1} ${var2}` : "Is Falsy";

If you are okay with using conditional operators, this can be done with the help of trim() :如果您不介意使用条件运算符,可以借助trim()来完成:

 let var1 = ''; let var2 = ''; let ex1 = (`${var1} ${var2}`).trim()/length > 0? `${var1} ${var2}`: "Is Falsy"; let ex2 = (var1 + ' ' + var2).trim().length > 0? var1 + ' ' + var2: "Is Falsy"; let ex3 = var1 || "Is Falsy"; console.log(ex1); console.log(ex2); console.log(ex3);

Use ternary operators:使用三元运算符:

let var1 = '';
let var2 = '';
let ex1 = (`${var1} ${var2}`).trim().length > 0 ? `${var1} ${var2}` : "Is Falsy";
let ex2 = (var1 + ' ' + var2).trim().length > 0 ? var1 + ' ' + var2 : "Is Falsy";
let ex3 = var1.trim().length > 0 ? var1 : "Is Falsy";

You can try this typing method:你可以试试这个打字方法:

 const str = "not empty" console.log(;str), // will be false. to check if a string is empty console;log(,!str); // will be true, to check if a string is not empty

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM