Add fingerprint API key In (load & create profile) action Maxxx give you an example with screenshot
If you don't want load fingerprint then set as false fingerprint setting
Доброго времени суток! Нужно подставить в регулярку переменную с префиксом.
Так, без переменной, регулярка пашет:
var RegExp1 = /MY_PREFIX_[\s\S]+?:\s[\s\S]+)/
var Result = RegExp1.test(ConfigString)
А так, с динамически заданным префиксом, уже нет:
var Prefix = VAR_MY_PREFIX
var RegExp1 = (new RegExp('/('+ Prefix +'[\s\S]+?:\s[\s\S]+)/'))
var Result = RegExp1.test(ConfigString)
Пробовал и без скобок:
var RegExp1 = new RegExp('/('+ Prefix +'[\s\S]+?:\s[\s\S]+)/')
Не помогает.
Что я делаю не так?
@pragmatik Вот пример:
var test='Вася';
var reg = new RegExp('\\s'+test,'i');
log(reg.test('Меня зовут Вася') );
Если рег выражение создается через конструктор, то не надо оборачивать в /.../ т.к. там должна быть строка. И все спецсимволы в строке должны экранироваться \
@Pragmatik В следующий раз выкладывайте строку к которой применяете код тоже.
У меня BAS ругается на твою регулярку
MY_PREFIX_[\s\S]+?:\s[\s\S]+)
Так как не экранирована закрывающая скобка вконце
MY_PREFIX_[\s\S]+?:\s[\s\S]+\)
var ConfigString = "1234123MY_PREFIX_фыва: фывафывафывафыва )"
var RegExp1 = /MY_PREFIX_[\s\S]+?:\s[\s\S]+\)/
var Result = RegExp1.test(ConfigString)
log(Result) //true
Если рег выражение создается через конструктор, то не надо оборачивать в /.../ т.к. там должна быть строка. И все спецсимволы в строке должны экранироваться \
Долго я печатал :D
var ConfigString = "1234123MY_PREFIX_фыва: фывафывафывафыва )"
var Prefix = "MY_PREFIX_"
var RegExp1 = new RegExp(Prefix+"[\\s\\S]\+\?:\\s[\\s\\S]+\\\)","g")
var Result = RegExp1.test(ConfigString)
log(Result) //true
Да, все спецзнаки в переменной тоже должны быть экранированы.
@Pragmatik Регулярки всё таки странные, приведи пример данных к которым ты применяешь регулярку
@fox есть конфигурационный файл. В нём есть код, и есть комменты. У меня любая строка кода начинается с префикса, а любой коммент с решётки (#). Данный цикл работает в два этапа: первая регулярка отделяет код от комментов по преффиксу ( можно делать наоборот, исключать комменты по #, но думаю, удобнее так, в комменты тогда можно вообще что угодно вставлять безо всяких спецсимволов, главное, чтобы там преффикса не было ). А вторая регулярка уже берёт готовый код без преффикса. Данный цикл берёт из массива данных считанного построчно конфига все строки с кодом и формирует из них отдельный массив, чтобы работало быстрее. Далее по такому же принципу я нахожу по преффиксу нужный мне код в этом массиве и присваиваю нужным переменным. В итоге массив данных хранится в файле и считывается очень удобным образом. Удобнее базы данных, так как конфиги можно править в блокноте.
@fox пример строчек конфига:
#Настройки прокси:
VAR_AR_ACCOUNT_PROXY: http,185.232.168.40:9172,aAz6A7,FoP1fZ
#Имя аккаунта:
VAR_AR_ACCOUNT_NAME: David Miller
#Логин аккаунта:
VAR_AR_ACCOUNT_LOGIN: miller.david2015@yandex.ru
#Пароль аккаунта
VAR_AR_ACCOUNT_PASSWORD: K72+r/Q8iljkhz0r6B
#Accept-Language аккаунта
VAR_AR_ACCOUNT_LANGUAGE: ru-RU,ru;q=0.6,en-US,en;q=0.6
#User-Agent аккаунта
VAR_AR_ACCOUNT_USERAGENT: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 YaBrowser/18.6.1.770 Yowser/2.5 Safari/537.36
И так далее... Ещё fibgerprint туда же запихнул и кучу логинов-паролей для разных сайтов, завязанных на этот профиль.
@Pragmatik Прикольно, BAS работает по схожему принципу :D
Я прибегаю к работе с файлами в отладочных версиях скрипта. Для быстрого теста необходимых узлов.
Но объявлять переменные в конфиге черевато, так как дальше по скрипту ты эти переменные используешь, возможны ошибки.
Хотя всё зависит от цели самого скрипта
@Pragmatik Или у тебя переменные уже объявлены, а значение из файла ищется по имени переменной?
@fox да в том-то и беда, что через eval невозможно объявить переменную чтобы она с нуля появилась в БАС. Я тупо считываю эти значения и через if подставляю нужной переменной нужное значение. Там же, в коде с if эти переменные впервые и появляются. Очень неудобно, если честно. Если бы был безопасный способ создать переменную через код, было бы круто, может ещё реализуют.
@pragmatik Храните свой конфиг в json в виде объекта и делов
@denis_krsk said in Не подставляется переменная в регулярку:
Храните свой конфиг в json в виде объекта и делов
Предлагаете преобразовать файл в json или же сам массив данных из файла для хранения в переменной?
Я о таком не задумывался потому, что у меня в конфиге fingerprint хранится, а он уже в формате json. Json в json наврятли можно пережать.
Впрочем, с такой идейкой можно и два файла сделать, один для конфигурации, второй для слепка браузера.
@pragmatik Если уж вы выбрали такой подход к хранению данных, то json самое правильное решение. JSON способ передачи объектов в виде строки. Потому вам некто не мешает создать сколько угодно сложный объект и хранить в нем все, в том числе и фингер принт.
например:
var config={
name:'Ivan'
commens:[
'hi',
'way'
],
finger:fingerprint
}
//Потом в json
var json=JSON.stringify(config);
//Затем его записываете в файл
//А после чтения
var json=JSON.parse(file);
//А потом распарсиваете его свойства
var name=json.name;
var commens=json.commens;
var finger=json.fingerprint;