小编Des*_*901的帖子

正则表达式懒惰量词

我有这样一句话

a something* q b c w
Run Code Online (Sandbox Code Playgroud)

我必须匹配aq一样

(id_1: a, id_2: q)
Run Code Online (Sandbox Code Playgroud)

b独自喜欢

(id_1: b)
Run Code Online (Sandbox Code Playgroud)

cw一样(id_1:c id_2:w)

我试着用这个正则表达式

(?:\b(?P<id_1>a|b|c)\b(?:.*?)(?P<id_2>q|w)?\b)
Run Code Online (Sandbox Code Playgroud)

因为懒惰的算子.*?正则表达式只匹配句子的第一部分,仅匹配

(id_1: a, id_1: b, id_1: c)
Run Code Online (Sandbox Code Playgroud)

实例

如果我们使用贪婪的运算符使表达式成为

(?:\b(?P<id_1>a|b|c)\b(?:.*)(?P<id_2>q|w)?\b)
Run Code Online (Sandbox Code Playgroud)

实例

它匹配

(id_1: a)
Run Code Online (Sandbox Code Playgroud)

之后的所有内容都匹配为.*.

如果第二部分是强制性的(懒惰的话.*):

(?:\b(?P<id_1>a|b|c)\b(?:.*?)(?P<id_2>q|w)\b)
Run Code Online (Sandbox Code Playgroud)

实例

它匹配句子

(id_1: a, id_2: q);(id_1: b, id_2: w)
Run Code Online (Sandbox Code Playgroud)

正如所料.

它可以使用正则表达式"更喜欢"匹配整个句子(包括选装件)或只有第一部分匹配ONLY如果可选的一个缺失.

编辑: 对不起,提供的正则表达式中有一些错误.

最后一个正则表达式是:

(?:\b(?P<id_1>a|b|c)\b(?:.*?)(?P<id_2>q|w)\b)
Run Code Online (Sandbox Code Playgroud)

并且它要求两个组都是强制性的.它匹配"某事物*w",但它与"某物*"或"a"不匹配.我需要匹配"a**w"以及"a"和"a w"并分别获得匹配组:

(id_1: a , id_2: w) ; (id_1: a, id_2: none) …
Run Code Online (Sandbox Code Playgroud)

regex

5
推荐指数
1
解决办法
119
查看次数

覆盖特定状态代码的 jQuery 默认 ajaxError

我正在尝试为 AJAX 调用实现一个 jQuery 默认 HTTP 错误处理程序。我已经为通用应用程序错误实现了默认错误处理程序,如下所示:

$(document).ajaxError(function(event, jqXHR, settings, thrownError) {
    switch (jqXHR.status) {
        case 403:
            console.log('Forbidden, go away!');
            break;
        case 404:
            console.log('Resource not found :O');
            break;
        case 422:
            console.log('Unprocessable entity.');
            break;
        case 500:
            console.log('Someone have to pay for this!');
            break;
        default:
            console.log('Anyone knows what is going on here?');
    }
});
Run Code Online (Sandbox Code Playgroud)

现在我想要实现的是在单个 AJAX 调用中覆盖特定的状态代码。例如

$.ajax({
    ...
    error: function(jqXHR, textStatus, errorThrown) {
         if(jqXHR.status === 404){
             console.log('The requested unicorn is actually missing');
         }
    }
})
Run Code Online (Sandbox Code Playgroud)

现在,如果我如上所示执行,将显示两条消息

>The requested unicorn is actually …
Run Code Online (Sandbox Code Playgroud)

javascript ajax jquery

2
推荐指数
1
解决办法
1287
查看次数

标签 统计

ajax ×1

javascript ×1

jquery ×1

regex ×1