Генерация случайных коррелированных точек x и y с использованием Numpy

ОБНОВЛЕНИЕ: Обратите внимание, что это решение, которое должно применяться к старым браузерам или платформам, отличным от браузера, и поддерживается в целях обучения. Пожалуйста, обратитесь к нижеприведенному ответу @radicand для получения более актуального ответа.


Это строка с unicode, escaped. Сначала строка была экранирована, затем закодирована с помощью unicode. Чтобы вернуться в нормальное состояние:

var x = "http\\u00253A\\u00252F\\u00252Fexample.com";
var r = /\\u([\d\w]{4})/gi;
x = x.replace(r, function (match, grp) {
    return String.fromCharCode(parseInt(grp, 16)); } );
console.log(x);  // http%3A%2F%2Fexample.com
x = unescape(x);
console.log(x);  // http://example.com

Объяснить: Я использую регулярное выражение для поиска \u0025. Однако, поскольку для моей операции замены требуется только часть этой строки, я использую круглые скобки, чтобы изолировать часть, которую я буду использовать повторно, 0025. Эта изолированная часть называется группой.

Часть gi в конце выражения означает, что она должна соответствовать всем экземплярам в строке, а не только первой, и что сопоставление должно быть нечувствительным к регистру , Это может выглядеть излишним с учетом примера, но оно добавляет универсальность.

Теперь, чтобы преобразовать из одной строки в другую, мне нужно выполнить несколько шагов для каждой группы каждого совпадения, и я не могу этого сделать что просто преобразует строку. Полезно, что операция String.replace может принимать функцию, которая будет выполняться для каждого совпадения. Возврат этой функции заменит совпадение в строке.

Я использую второй параметр, который принимает эта функция, которая является группой, которую я должен использовать, и преобразовываю ее в эквивалентную последовательность utf-8, а затем используйте встроенную функцию unescape для декодирования строки к его надлежащей форме.

16
задан elyase 8 September 2013 в 14:43
поделиться