Javascript 正则表达式 .match() 为空

标签 javascript regex

console.log(r.message); //returns "This transaction has been authorized"
if (r.message.match(/approved/).length > 0 || r.message.match(/authorized/).length > 0) {
// ^ throws the error: r.message.match(/approved/) is null

这不是在 JavaScript 中进行匹配的正确方法吗?

success: function (r) {
    $('.processing').addClass('hide');
    if (r.type == 'success') {
        console.log(r.message);
        if (r.message.match(/approved/).length > 0 || r.message.match(/authorized/).length > 0) {
            triggerNotification('check', 'Payment has been accepted');

            //document.location = '/store/order/view?hash='+r.hash;
        } else {
            triggerNotification('check', r.message);
        }
    } else {
        $('.button').show();

        var msg = 'Unable to run credit card: '+r.message;

        if (parseInt(r.code) > 0) {
            msg = msg+' (Error code: #'+r.code+')';
        }
        triggerNotification('x', msg);
    }
},

最佳答案

由于您正在获得授权消息,语句 r.message.match(/approved/) 将返回 null,因此会出现问题。

重写检查如下:

if (/approved|authorized/.test(r.message)) {

关于Javascript 正则表达式 .match() 为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5007865/

相关文章:

javascript - 如何从 Express/Jade 中的查询迭代和解析 JSON?

python - re 模块中内联标志的语法

javascript - 比较2个句子并获取不同单词的索引

javascript - ecmascript 正则表达式查找/替换 Chrome 主页

正则表达式:以 'and' 作为最后一个分割符分割列表句子(a、b、c 和 d。)

javascript - 看起来我的 javascript 中断了我的 css

javascript - 防止 Bootstrap 弹出窗口重置显示内容

javascript - 在 Laravel 5.7 的 vue js 中使用 jquery

javascript - 使用 Sinon.js 为 Angular.js 应用程序设置 RESTful 后端模拟

python - re.findall 不返回完整匹配?