好的,介绍一下背景。我想在我经常使用的页面上修改一些蹩脚的 HTML。我通过我的 content_script“js” 执行此操作,如 chrome 扩展的 manifest.json 文件中所定义。我一直使用的主要方法是这种丑陋的东西:
var str1 = 'something already on the page';
var str2 = 'something already on the page, plus some extra stuff';
document.body.innerHTML = document.body.innerHTML.replace(str,st2);
我主要是尝试重新排序表单对象,并稍微扩展它们以显示更多信息,并过滤/压缩它们以减少多余。如果有人能提供更好的方法来做到这一点,我将不胜感激。
无论如何...这是我的具体问题。
我想从以下内容中检索pistol
(或任何字符串):
<form action="map.cgi?use-o" method="post" class="a"><input type="submit" value="pistol" class="m"\></form>
我尝试了以下每种变体:
str.exec(/value="([^]+)" class/);
我要么得到了null
,要么得到了我不想要的垃圾字符串。有想法吗?
谢谢!
最佳答案
如果您坚持使用正则表达式,请使用以下一个:
(?:value=")([^"]+)
这里是DEMO
使用 JavaScript,它看起来像:
var value = document.querySelectorAll("input[type=submit]")[0].value;
关于Chrome 扩展中的 javascript 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29596656/