var App = App || {};
App = {
getDataFromServer: function(){
var self = this,
deferred = $.Deferred(),
requests = [];
requests.push($.getJSON('request/ajax/url/1'));
requests.push($.getJSON('request/ajax/url/2'));
$.when.apply(jQuery, requests).done(function(xhrResponse) {
return deferred.resolve(xhrResponse.result);
});
return deferred;
},
init: function(){
this.getDataFromServer().done(_.bind(function(resp1, resp2) {
// Do the operations which you wanted to do when you
// get a response from Ajax, for example, log response.
}, this));
}
};
App.init();
Ниже регулярное выражение будет соответствовать строкам, которые не имеют повторяющихся символов.
^(?!.*(\w)\1).*
(?!.*(\w)\1)
отрицательный lookahead, который утверждает, что строка, которая будет сопоставлена, не будет содержать повторяющихся символов , .*(\w)\1
будет соответствовать строке, которая имеет повторяющиеся символы в середине или в начале или в конце. ^(?!.*(\w)\1)
соответствует всем начальным границам, кроме тех, которые имеют повторяющиеся символы. И следующий .*
соответствует всем символам, существующим на этой конкретной строке. Обратите внимание, что это также соответствует пустым строкам. Если вы не хотите сопоставлять пустые строки, измените .*
последним на .+
. Обратите внимание, что ^(?!(\w)\1)
проверяет повторяющиеся символы только в начале строки или строки.
Lookahead и lookbehind, все вместе называемые "lookaround" , являются утверждениями с нулевой длиной, как и начало и конец строки. Они не потребляют символы в строке, а только утверждают, возможно ли совпадение или нет. Lookaround позволяет создавать регулярные выражения, которые невозможно создать без них, или это будет очень долго без них.