Javascript 如果是空字符串,则正则表达式不匹配

Javascript 如果是空字符串,则正则表达式不匹配,javascript,regex,validation,Javascript,Regex,Validation,目前,我正在使用/^[a-zA-Z.+-.]+$/regex来验证传入字符串 当传入字符串为空或仅包含空格时,我希望代码抛出一个错误 如何使用正则表达式检查空字符串?我找到了一些解决办法,但没有一个是有用的 您可以使用 /^(?! *$)[a-zA-Z.+ '-]+$/ 或-匹配任何空格 /^(?!\s*$)[a-zA-Z.+\s'-]+$/ 如果字符串为空或仅包含空格,则(?!\s*$)负前瞻将使匹配失败 图案细节 ^-字符串的开头 (?!\s*$)-字符串中没有空字符串或只有空格 [a

目前,我正在使用
/^[a-zA-Z.+-.]+$/
regex来验证传入字符串

当传入字符串为空或仅包含空格时,我希望代码抛出一个错误

如何使用正则表达式检查空字符串?我找到了一些解决办法,但没有一个是有用的

您可以使用

/^(?! *$)[a-zA-Z.+ '-]+$/
或-匹配任何空格

/^(?!\s*$)[a-zA-Z.+\s'-]+$/
如果字符串为空或仅包含空格,则
(?!\s*$)
负前瞻将使匹配失败

图案细节

  • ^
    -字符串的开头
  • (?!\s*$)
    -字符串中没有空字符串或只有空格
  • [a-zA-Z.+\s'-]+
    -1个或多个字母、
    +
    、空格、
    '
    -
    字符
  • $
    -字符串结束

请注意,实际上,您也可以在此处使用
(?!\s+
先行查看,因为您的模式与空字符串不匹配,这是因为末尾有
+
量词。

请检查字符串是否为空或未使用以下正则表达式:

/^ *$/
上面的正则表达式匹配字符串的开头(
^
),然后匹配任意数量的空格(
*
),最后匹配字符串的结尾(
$
)。如果您想匹配任何空白(选项卡等),可以使用
\s*
而不是
*
,使正则表达式如下所示:

/^\s*$/

要检查空字符串或仅空白字符串,可以使用以下正则表达式:
/^\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

if(string.match(//^\s?=*$/g).length>0)//无效
当此问题中的代码与此插件无关时,请不要使用jQuery验证标记。编辑。谢谢。不需要全局标志。哎呀,是测试用的,把它去掉了