如何去除串的随机部分在JavaScript的iMacros
我有一些字符串如何去除串的随机部分在JavaScript的iMacros
“d:\试验\ IMG \ 2 \ 5时髦,高跟鞋,牛津shoes.jpg”
“d:\试验\ IMG \ 3 \ 20可爱高跟鞋-街道style_01.jpg”
“d:\试验\ IMG \ 4 \ 637d3c5673d97326f9517ad24ba99e76.jpg”
“d:\试验\ img \ 5 \ 126003_P_1388122701631.jpg“
我想删除“D:\trial\img\2\
”,并希望只有“5-trendy-high-heel-oxford-shoes.jpg
”
但你可以看到所有串子串img
后有不同的数字。
请帮我解决这个imacros javascript eval功能。
这里是我的iMacros代码
SET !DATASOURCE D:\trial\ima_kuwot.csv SET !DATASOURCE_COLUMNS 50
SET !LOOP 2
SET !DATASOURCE_LINE {{!LOOP}}
SET !VAR1 {{!COL3}}
Add !EXTRACT "D:\trial\img\3\20-cute-heels-street-style_01.jpg"
SET !VAR1 EVAL("var s=\"{{!EXTRACT}}\"; s.split('img\')[2];")
SET !VAR1 EVAL("var s=\"{{!EXTRACT}}\"; s.replace(/[^0-9\.]+/g, "");")
SET !VAR2 EVAL("var s=\"{{!VAR1}}\"; s.replace(/[]+/g,'.jpg')")
SET !VAR2 EVAL("'{{!VAR1}}'.split('D:"\trial\img\1\"')[0].trim();")
PROMPT {{!VAR1}}
TAG POS=1 TYPE=INPUT:SEARCH ATTR=ID:media-search-input CONTENT={{!VAR1}}
我尝试了上述eval语句,但没有为我工作。
回答:
幸运的是,下面的语法的工作原理:
SET !EXTRACT D:\\\trial\\\img\\\3\\\5-trendy-high-heel-oxford-shoes.jpg SET !VAR1 EVAL("'{{!EXTRACT}}'.match(/[\d\w\-\.]+$/);")
PROMPT {{!VAR1}}
(至少在'iMacros for Firefox'和'iMacros for Chrome'中。)
回答:
我假设你正在从网页中提取这些路径字符串。我认为您不能使用iMacros EVAL命令解析出文件名,因为在将提取的路径填充到组成EVAL命令的字符串中时,反斜杠字符将被视为转义字符。
例如,假设您已经提取了其中一个路径,它现在在!EXTRACT变量中。尝试使用这个变量在EVAL命令,如下所示将无法正常工作:
SET fullPath EVAL("var path = '{{!EXTRACT}}'; path;") PROMPT {{fullPath}}
FULLPATH的值不会是所希望的,因为在提取文本中的反斜杠字符作为转义字符处理。
为了正确执行此操作,您需要使用Javascript脚本界面,假设您使用Firefox的iMacros。在这种情况下,您将播放一个Javascript(.js)脚本,该脚本将播放一个用于提取路径的宏,然后通过iimGetExtract调用将提取的值返回到脚本代码,其中可以使用该脚本解析出文件名一个正则表达式。
我创建了一个示例宏,该宏输入一个表单字段中提供的几个路径值,然后将其提取出来,并与相应的Javascript一起处理值。
ExtractFilePaths.iim:
URL GOTO=http://demo.imacros.net/Automate/TestForm1 TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=ID:name CONTENT=D:\trial\img\2\5-trendy-high-heel-oxford-shoes.jpg
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=ID:name EXTRACT=TXT
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=ID:name CONTENT=D:\trial\img\3\20-cute-heels-street-style_01.jpg
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=ID:name EXTRACT=TXT
GetFileNames。JS:
iimPlay("ExtractFilePaths"); var regex = /D:\\trial\\img\\\d+\\(.*)/i;
var noMatch = "Match not found";
var fileName;
var matches;
matches = regex.exec(iimGetExtract(1));
fileName = matches ? matches[1] : noMatch;
alert(fileName);
matches = regex.exec(iimGetExtract(2));
fileName = matches ? matches[1] : noMatch;
alert(fileName);
有关使用JavaScript脚本接口的iMacros的Firefox的更多信息,请参阅以下内容:
http://wiki.imacros.net/iMacros_for_Firefox#Javascript_Scripting_Interface
以上是 如何去除串的随机部分在JavaScript的iMacros 的全部内容, 来源链接: utcz.com/qa/257634.html