目前,我使用/^[a-zA-Z.+-. ']+$/
正则表达式来验证传入的字符串。
当传入的字符串为空或仅包含空格时,我希望代码抛出错误。
如何使用正则表达式检查空字符串?我找到了一些解决方案,但没有一个有用
答案 0 :(得分:2)
使用以下正则表达式检查字符串是否为空:
/^ *$/
上面的正则表达式匹配字符串的开头(^
),然后是任意数量的空格(*
),然后是字符串的结尾($
)。如果您希望匹配任何空格(标签等),则可以使用\s*
代替*
,使正则表达式如下:
/^\s*$/
答案 1 :(得分:1)
您可以使用
/^(?! *$)[a-zA-Z.+ '-]+$/
或 - 匹配任何空格
/^(?!\s*$)[a-zA-Z.+\s'-]+$/
如果字符串为空或仅包含空格,则(?!\s*$)
否定前瞻将使匹配失败。
模式详情
^
- 字符串开头(?!\s*$)
- 仅在字符串[a-zA-Z.+\s'-]+
- 一个或多个字母,.
,+
,空白,'
或-
字符$
- 字符串结束。请注意,实际上,您也可以在此使用(?!\s+)
预测,因为您的模式与空字符串不匹配,因为最后是+
量词。
答案 2 :(得分:1)
要检查空的或仅限空格的字符串,您可以使用此正则表达式:/^\s*$/
示例:
function IsEmptyOrWhiteSpace(str) {
return (str.match(/^\s*$/) || []).length > 0;
}
var str1 = "";
var str2 = " ";
var str3 = "a b";
console.log(IsEmptyOrWhiteSpace(str1)); // true
console.log(IsEmptyOrWhiteSpace(str2)); // true
console.log(IsEmptyOrWhiteSpace(str3)); // false