如何去除串的随机部分在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

回到顶部