2010-09-22 60 views
0

有没有办法在javascript书签中使用通配符?Javascript中的Wild Card Bookmarklet

例如,我有这样的:

javascript:(function(){var b=document.getElementsByName('send');for(var j=0;j<b.length;j++){if(b[j].value.match(/^Send Pattarapim a Thank you gift$/i)){b[j].click();break;}}})() 

这伟大的工作时,该项目是为 “Pattarapim”。但是这个“名字”每次都会改变。无论Pattarapim的位置是什么,我可以做任何事情来让JS工作吗?

谢谢!

回答

0

您可以从

/^Send Pattarapim a Thank you gift$/i 

正则表达式改为

/^Send .* a Thank you gift$/i 

.指“在这里匹配任何字符”,而*下它的意思是“匹配零个或多个前面的事”。所以它们的结合意味着“在这里匹配零个或更多的任何角色”。 (或者您可以使用+而不是*; +的意思是“匹配一个或多个”。)请注意,这可能太宽泛,取决于您要处理的文本,但由于您从^开始,往往会把它固定一点,它可能会很好。

+0

我只会让这个懒惰而不是贪婪,并不是说它可能会在这种情况下有所作为。 – NullUserException 2010-09-22 15:45:15

+0

@NullUserException:是的,也许吧,虽然他将锚定开始和结束,但我们只是说这确实是一个非常奇怪的名字。 :-) @Michael:为了让它变懒,只需在'*'或'+'之后加一个'?'。 – 2010-09-22 16:05:46

+0

完美运作。谢谢! – Seatbelt99 2010-09-22 17:44:17