Самое простое решение - создать функцию JavaScript и вызвать его для обратного вызова Ajax success
.
function callServerAsync(){
$.ajax({
url: '...',
success: function(response) {
successCallback(response);
}
});
}
function successCallback(responseObj){
// Do something like read the response and show data
alert(JSON.stringify(responseObj)); // Only applicable to JSON response
}
function foo(callback) {
$.ajax({
url: '...',
success: function(response) {
return callback(null, response);
}
});
}
var result = foo(function(err, result){
if (!err)
console.log(result);
});
Немного длинный, но рассчитанный на наличие только одного возможного пути для каждой цифры (для быстрого сбоя):
^(?:
[1-8][0-9]{3,}
|
9 (?:
[0-4][0-9]{2,}
|
[6-9][0-9]+
|
5 (?:
[5-9][0-9]*
|
[0-4][0-9]+
)
)
)$
Обратите внимание, что ветви сортируются по вероятности.
Сжатый:
^(?:[1-8][0-9]{3,}|9(?:[0-4][0-9]{2,}|[6-9][0-9]+|5(?:[5-9][0-9]*|[0-4][0-9]+)))$
Примечание: выполнение этого шаблона регулярного выражения в большинстве случаев является неуместным и сложным (регулярное выражение не предназначено для решения арифметических задач). Поэтому, если вы можете, введите свою строку в целое число и протестируйте ее с помощью простого сравнения.
\b(?<!\.)0*(?:[1-9]\d{3,}|9(?:[6-9]\d|5[5-9]))(?:\.\d+)?\b
Эта строка будет соответствовать ведущим нулям и десятичным знакам, но только если все значение превышает 954. Таким образом, оно будет соответствовать 955.62 и 0001253.125, но не 00954.999 или 125.967. regex101
Чтобы разбить его:
(?<!\.)
говорит, что он не соответствует, если есть период непосредственно перед номером. Это необходимо, чтобы избежать совпадения таких вещей, как 0.957.
e2: 0*
был добавлен, чтобы выполнить полное совпадение с ведущими нулями
(?:[1-9]\d{3,}|9(?:[6-9]\d|5[5-9]))
устанавливает соответствие для всего существенного слева от десятичной точки. [1-9]\d{3,}
соответствует любому числу, равному или превышающему 1000. Другая сторона | (или оператор), 9(?:[6-9]\d|5[5-9])
соответствует любым числам в 900s с другим или вложенным внутри. Внутренний или будет соответствовать, когда десятки и цифры - 60-99 или 55-59.
(?:\.\d+)?
- это оператор, который соответствует десятичным знакам. ? в конце делает его необязательным, чтобы он соответствовал числам, которые не имеют десятичных точек в них.
e2: регулярное выражение было завернуто в \b
s, чтобы убедиться, что это его собственное слово. Регулярное выражение больше не будет соответствовать so1337, the769s или 960things.
EDIT1: Забыл сделать мой. Литерал.
EDIT2: внесенные изменения, отмеченные знаком «e2:»
Я не использовал бы регулярное выражение для этого, так как вы попадете в уродливые цепочки шаблонов.
Однако, если все еще нужно или нужно использовать его, вы можете использовать регулярное выражение, подобное этому:
[1-9]\d{3,}|9[6-9]\d|9[5-9]{2}
[/g1]
Идея этого регулярного выражения такова:
[1-9]\d{3,} --> This will match 4 or more digit numbers
9[6-9]\d --> This will match numbers between 960 to 999
9[5-9]{2} --> This will match numbers between 955 to 999
you could write this pattern as `95[5-9]` to cover
numbers from 955 to 959 if you wish (it's up to you)
Вы можете использовать следующее:
95[5-9]|9[6-9]\d|[1-9]\d{3,}
Объяснение:
95[5-9]
соответствует 955-959
9[6-9]\d
соответствует из 960-999
[1-9]\d{3,}
соответствует > 1000
Я пытался проанализировать файл журнала приложений времен работы базы данных, захваченных для определенных запросов. Время записывается в миллисекундах (например, DatabaseTime = 12035 ~ Время в базе данных = ~ 12 секунд). Для дальнейшего уточнения мне нужно было найти случаи, когда пользовательский интерфейс приложения истекал через 120 секунд (т. Е. DatabaseTime> 120000), поэтому я мог фиксировать отметки времени на этой же строке.
Вот что я придумал для шаблона RegEx:
[1-9][2-9][0-9]\d{3,}|[1-9]\d{6,}
Многие из вас здесь являются экспертами по регулярному выражению, чтобы разбить это на уме, но для тех, кто aren 't, я проверил это на regex101.com, который также показывает разбивку регулярного выражения для вас: https://regex101.com/r/hG2iU7/28
Некоторые мысли / соображения по этому вопросу (опять-таки полностью соответствующие первому вопросу):
Наконец, позвольте мне заявить: у вас будет много времени на красивое кодирование и эффективность после того, как вы начнете свое исследование ... зачем тратить время на кодирование, когда вы даже не можете найти то, что ищете в первое место? Небольшое исследование никогда никому не повредило ... и все знают, что Рим не был построен за один день.