Как получить значение из исходного кода страницы из функционального тега? - PullRequest
2 голосов
/ 08 июня 2019

вот функция из исходного кода

function dosubmit()
  {
    if (getObj("Frm_Username").value == "")
    {
      getObj("errmsg").innerHTML = "Username cannot be empty.";
      getObj("myLayer").style.visibility = "visible" ;
      return;
    }
    else
    {
      getObj("LoginId").disabled = true;
      getObj("Frm_Logintoken").value = "3";
      document.fLogin.submit();
    }
  }

я хочу получить значение getObj ("Frm_Logintoken"), так как не могу получить значение от # Frm_Logintoken

используя document.getElementById("#Frm_Logintoken") это дает мне ноль

потому что Frm_Logintoken получает его значение, только когда я нажимаю на кнопку отправить.

<input type="hidden" name="Frm_Logintoken" id="Frm_Logintoken" value="">

полный код страницы

я нашел это онлайн /getObj\("Frm_Logintoken"\).value = "(.*)";/g но когда я запускаю его ... он снова дает мне ту же строку! это полный код

другое регулярное выражение, которое я нашел, но даже не знаю, как его использовать

Пример регулярного выражения для поиска: before_egrep = ' N1 : getObj ("Frm_Logintoken"). value = "(\ w +)"'

Здесь N1 присваивается значение обратной ссылки - выражение в скобках. \ w + обозначает главные составные символы, это синоним для "[_ [: alnum:]]". Еще раз - обратите внимание на скобки - это обратная ссылка. В то же время, есть также скобки во фрагменте исходного кода - их нужно экранировать

Я пытаюсь сделать скрипт автоматического входа, который работает в фоновом режиме, как это

не показывает пользователю страницу формы входа, а только страницу после него

и я нашел этот код в Интернете, но не знаю, что содержит xhr .

линия, которая привлекла мое внимание

/getObj\("Frm_Logintoken"\).value = "(.*)";/g 

когда я запускаю его ... он снова дает мне строку!

некоторые заметки:

я пробовал document.getElementById ("Frm_Logintoken"). Значение, но оно дает мне пустое "", потому что

Frm_Logintoken получает значение только тогда, когда я нажимаю на кнопку отправить.

страница даже не примет правильный пароль, если значение токена Frm_Logintoken не совпадает со значением на странице.

Frm_Logintoken - это токен, сгенерированный страницей, и он в основном увеличивается на единицу при каждом успешном входе в систему.

Ответы [ 2 ]

0 голосов
/ 08 июня 2019

Чтобы получить значение, вы можете использовать группу захвата ([^"]+) и класс отрицательных символов:

\bgetObj\("Frm_Logintoken"\)\.value = "([^"]+)";

Regex demo | Javascript demo

Например:

let str = `getObj("Frm_Logintoken").value = "3";`;
let pattern =/\bgetObj\("Frm_Logintoken"\)\.value = "([^"]+)";/;

console.log(str.match(pattern)[1]); //3
0 голосов
/ 08 июня 2019

Я не совсем уверен в том, чтобы предложить выражение для помощи или улучшения, чтобы помочь решить вашу проблему, но если мы хотим извлечь определенные атрибуты и значения из предложенного тега input, мы, вероятно, начнем с выраженияаналогично:

name="(.+?)"|id="(.+?)"|value="(.+)?"

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

Демонстрация

RegEx

Если это выражение нежелательно и вы хотите изменить его, перейдите по этой ссылке на regex101.com .

RegEx Circuit

jex.im визуализирует регулярные выражения:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...