我想用Regex从HTML表单中提取令牌。每次加载页面时,令牌都会更改。
<input type="hidden" name="lt" value="LT-24-EskCKFJ4NghflvpXkuveCdZ1VvWPLi" />
我想隔离这个隐藏输入的值。
我找到了http://regexr.com/,我取得了一些进展。 我现在的正则表达式是#34;([a-zA-Z0-9 \ - ] *)?&#34;它将所有内容隔离在引号内。
我正在使用Java。在向服务器发出GET请求后,整个HTML页面都以字符串形式提供给我。我需要LT令牌重新发布。
有没有办法专门隔离LT令牌?
答案 0 :(得分:0)
要确保获得正确的元素,即使HTML稍有不同,也可以使用此正则表达式。 (没有外观,因为我们正在使用JS。)
\sname="lt"\s+(?:.*?\s+)?value="([^"]+)"
它确保即使name属性和value属性之间存在某些内容,您仍然匹配。它还考虑到可能有多个空格分隔符。但是,name属性必须在value属性之前才能工作。
var string = '<input type="hidden" name="lt" value="LT-24-EskCKFJ4NghflvpXkuveCdZ1VvWPLi" />',
text = /\sname="lt"\s+(?:.*?\s+)?value="([^"]+)"/.exec(string)[1];
document.getElementsByTagName("p")[0].innerHTML = text;