Swift 3 Просто используйте «[]» с параметром загрузки изображения, чтобы сделать его массивом изображений.
Alamofire.upload(multipartFormData: { multipartFormData in
// import image to request
for imageData in imagesData {
multipartFormData.append(imageData, withName: "\(imageParamName)[]", fileName: "\(Date().timeIntervalSince1970).jpeg", mimeType: "image/jpeg")
}
for (key, value) in parameters {
multipartFormData.append(value.data(using: String.Encoding.utf8)!, withName: key)
}
}, to: urlString,
encodingCompletion: { encodingResult in
switch encodingResult {
case .success(let upload, _, _):
upload.responseJSON { response in
}
case .failure(let error):
print(error)
}
})
Утверждения Lookbehind были недавно завершены для JavaScript и будут опубликованы в следующей публикации спецификации ECMA-262. Они поддерживаются в Chrome 66 (Opera 53), но других основных браузеров на момент написания.
var str = 'Text:"How secure is my information?"',
reg = /(?<=Text:")[^"]+(?=")/;
str.match(reg)[0];
// -> How secure is my information?
Старые браузеры не поддерживают lookbehind в регулярном выражении JavaScript. Вы должны использовать скобку для выражений, подобных этой:
var str = 'Text:"How secure is my information?"',
reg = /Text:"([^"]+)"/;
str.match(reg)[1];
// -> How secure is my information?
Однако это не будет охватывать все случаи использования утверждения lookbehind.
Если вы хотите избежать регулярного выражения все вместе, вы можете сделать:
var texts = file.split('Text:"').slice(1).map(function (text) {
return text.slice(0, text.lastIndexOf('"'));
});
Вы можете просто сделать:
/Text:"(.*?)"/
Объяснение:
Text:"
: для соответствия буквально .*?
: To (g2) ()
: Чтобы зафиксировать совпадение "
: для соответствия литералу "
/ /
: разделители Я просто хочу добавить что-то: JavaScript не поддерживает lookbehinds как (?<= )
или (?<! )
.
Но он поддерживает lookaheads, такие как (?= )
или (?! )
.
Вот пример, показывающий, как вы можете это сделать.
1) Учитывая эту входную строку:
const inputText =
`Text:"How secure is my information?"someRandomTextHere
Voice:"Not very much"
Text:"How to improve this?"
Voice:"Don't use '123456' for your password"
Text:"OK just like in the "Hackers" movie."`;
2) Извлечь данные в двойные кавычки после литерала Text:
, так что результаты представляют собой массив со всеми подобными совпадениями:
["How secure is my information?",
"How to improve this?",
"OK just like in the \"Hackers\" movie."]
РЕШЕНИЕ
function getText(text) {
return text
.match(/Text:".*"/g)
.map(item => item.match(/^Text:"(.*)"/)[1]);
}
console.log(JSON.stringify( getText(inputText) ));
RUN SNIPPET ДЛЯ ВИДЕНИЯ РАБОЧЕЙ ДЕМО
const inputText =
`Text:"How secure is my information?"someRandomTextHere
Voice:"Not very much"
Text:"How to improve this?"
Voice:"Don't use '123456' for your password"
Text:"OK just like in the "Hackers" movie."`;
function getText(text) {
return text
.match(/Text:".*"/g)
.map(item => item.match(/^Text:"(.*)"/)[1]);
}
console.log(JSON.stringify( getText(inputText) ));
<script type="text/javascript">
var str = 'Text:"How secure is my information?"';
var obj = eval('({'+str+'})')
console.log(obj.Text);
</script>
eval
.
– Sjoerd
20 June 2012 в 13:39
str.match(reg)
без индекса 1, он выводит мысли["Text:"How secure is my information?""]
? – jmk2142 19 June 2013 в 15:42g
необходимо удалить для примера в моем ответе. – Andy E 19 June 2013 в 15:50str = 'Something <id="12345"> more things <id="qwerty>" ...'
Если мне нужны все значения id в массиве, кажется, вы захотите использовать g , но тогда скопирующие скобки исчезнут. Что было бы лучше всего здесь?reg = /id="([^"]+)"/g;
- & gt; [& lt; id = "12345", "id =" qwerty "& quot;] - & gt; затем запустите foreach с/id="([^"]+)"/
? Можно ли это сделать одним шагом регулярного выражения? – jmk2142 19 June 2013 в 16:55exec
за кулисами, возвращая только первый элемент из массива результатов на каждой итерации. Лучшее решение, вероятно, состоит в том, чтобы запустить собственный цикл, вызвавRegExp.prototype.exec
и самостоятельно разобрать результат или использовать поиск и не заменять метод (оба из них более или менее одинаковы, но последнее в некоторых случаях дает немного больше удобства). – Andy E 20 June 2013 в 08:45