繁体   English   中英

Javascript 正则表达式构造函数匹配字符串,并忽略 null、未定义或空字符串

[英]Javascript Regex constructor to match string, and ignore null, undefined, or empty strings

我正在尝试添加正则表达式以仅匹配非空值。 我在下面尝试的操作会破坏应用程序,因为数据库中有一些未定义的namesagesgenders以及 null。 我试图找到一个正则表达式,它将忽略数据库中的 null、未定义或空值,并且只匹配存在的值。

我了解^(?.\s*$).+将匹配任何包含至少一个非空格字符的字符串。 但我正在努力解决如何将它添加到action.payload (我匹配的字符串)。

case FILTER_USERS:
    return {
        ...state,
        user_info: state.userArr.filter(user => {
            const regex = new RegExp(`${action.payload}`, "gi");
            return (
              user.name.match(regex)
              || user.age.match(regex)
              || user.gender.match(regex)
            );
        })
    };

我知道这是非常不正确的,但这就是我尝试过的: const regex = new RegExp(`(^?)${action.payload}(.\s*$),+)`; "gi"); const regex = new RegExp(`(^?)${action.payload}(.\s*$),+)`; "gi");

任何帮助将不胜感激 - 谢谢!

(?=^[^\s]$)放在正则表达式前面将断言匹配中至少有一个非空白字符。

如果您已经在检查以确保字符串不仅是空格,那么为什么不使用if(${action.payload})代替呢? 这将检测空字符串null 字符串,因为它们都是假的。

暂无
暂无

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

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