如何使用 Regex 按文件格式取消选中所有文件
How use Regex from uncheck all files by file formats
我需要用 JQuery
取消选中此 HTML
中的许多文件
HTML:
<div class="well">
<h2>Select you files</h2>
<table id="list-files" class="table table-bordered table-striped table-condensed table-hover">
<tbody>
<tr>
<th width="10px"><input type="checkbox" id="select-all-files" checked="checked"></th>
<th>File</th>
<th>Size</th>
</tr>
<tr class="selectedFiles" style="display: table-row;">
<td><input type="checkbox" name="files[]" value="0" checked=""></td>
<td>
<div><span class="pull-left">The.Blind.Side.2009.1080p.BluRay.x264.DTS-FGT/</span><span style="padding-top:1px;padding: 0 2px;display:block;overflow:hidden"><input style="width:100%;color:#c8c8c8;background-color:transparent;padding:0px;margin:0px" type="text" name="rename[0]" value="Visit thist Web.com.txt"></span></div>
</td>
<td>34.0 iB</td>
</tr>
<tr class="selectedFiles" style="display: table-row;">
<td><input type="checkbox" name="files[]" value="1" checked=""></td>
<td>
<div><span class="pull-left">The.Blind.Side.2009.1080p.BluRay.x264.DTS-FGT/</span><span style="padding-top:1px;padding: 0 2px;display:block;overflow:hidden"><input style="width:100%;color:#c8c8c8;background-color:transparent;padding:0px;margin:0px" type="text" name="rename[1]" value="The.Blind.Side.2009.1080p.BluRay.x264.DTS-FGT.mkv"></span></div>
</td>
<td>8.8 GiB</td>
</tr>
<tr class="selectedFiles" style="display: table-row;">
<td><input type="checkbox" name="files[]" value="2" checked=""></td>
<td>
<div><span class="pull-left">The.Blind.Side.2009.1080p.BluRay.x264.DTS-FGT/</span><span style="padding-top:1px;padding: 0 2px;display:block;overflow:hidden"><input style="width:100%;color:#c8c8c8;background-color:transparent;padding:0px;margin:0px" type="text" name="rename[2]" value="The.Blind.Side.2009.1080p.BluRay.x264.DTS-FGT.nfo"></span></div>
</td>
<td>5.4 KiB</td>
</tr>
</tbody>
</table>
</div>
脚本:
var inp=$("tr input");
var r="Visit thist Web.com.txt";
for (i = 0; i < inp.length; i++) {
if(inp[i].value == r){
inp[i-1].checked = false;
}
}
How to improve this code?
此 script
仅取消选中 var r="Visit thist Web.com.txt";
,我需要取消选中带有 .txt 的所有文件!这个例子确实只有一个 .txt,但它通常会改变,甚至是顺序。
我还想用 .nfo、.url、jpg、gif 取消标记文件,这就是为什么我认为最好使用 regex
tampermonkey
在 chrome
感谢
您可以将 Jquery filter
函数与正则表达式一起使用。正则表达式:
/\.txt$/gi
正则表达式将匹配文字字符串:'.txt'
最后。
使用方法:
var inp=$("tr input").filter( function (index)
{
return /\.txt$/gi.test($(this).val());
}).closest('tr').find('td:first-child input').prop('checked', false);
这将在匹配元素上将选中的 属性 设置为 false。
要取消选中其他文件类型,您可以将正则表达式更改为:
/\.txt$|\.nfo$|\.url$|\.jpg$|\.gif$/gi
编辑:我仔细研究了你的 html 并更改了我的代码,希望它现在可以工作。
编辑2:
实际上你也可以使用你的原始代码扩展到包括正则表达式:
var inp=$("tr input");
var regex = /\.txt$|\.nfo$|\.url$|\.jpg$|\.gif$/gi;
for (i = 0; i < inp.length; i++) {
if (regex.test(inp[i].value)) {
inp[i-1].checked = false;
}
}
我需要用 JQuery
取消选中此 HTML
中的许多文件
HTML:
<div class="well">
<h2>Select you files</h2>
<table id="list-files" class="table table-bordered table-striped table-condensed table-hover">
<tbody>
<tr>
<th width="10px"><input type="checkbox" id="select-all-files" checked="checked"></th>
<th>File</th>
<th>Size</th>
</tr>
<tr class="selectedFiles" style="display: table-row;">
<td><input type="checkbox" name="files[]" value="0" checked=""></td>
<td>
<div><span class="pull-left">The.Blind.Side.2009.1080p.BluRay.x264.DTS-FGT/</span><span style="padding-top:1px;padding: 0 2px;display:block;overflow:hidden"><input style="width:100%;color:#c8c8c8;background-color:transparent;padding:0px;margin:0px" type="text" name="rename[0]" value="Visit thist Web.com.txt"></span></div>
</td>
<td>34.0 iB</td>
</tr>
<tr class="selectedFiles" style="display: table-row;">
<td><input type="checkbox" name="files[]" value="1" checked=""></td>
<td>
<div><span class="pull-left">The.Blind.Side.2009.1080p.BluRay.x264.DTS-FGT/</span><span style="padding-top:1px;padding: 0 2px;display:block;overflow:hidden"><input style="width:100%;color:#c8c8c8;background-color:transparent;padding:0px;margin:0px" type="text" name="rename[1]" value="The.Blind.Side.2009.1080p.BluRay.x264.DTS-FGT.mkv"></span></div>
</td>
<td>8.8 GiB</td>
</tr>
<tr class="selectedFiles" style="display: table-row;">
<td><input type="checkbox" name="files[]" value="2" checked=""></td>
<td>
<div><span class="pull-left">The.Blind.Side.2009.1080p.BluRay.x264.DTS-FGT/</span><span style="padding-top:1px;padding: 0 2px;display:block;overflow:hidden"><input style="width:100%;color:#c8c8c8;background-color:transparent;padding:0px;margin:0px" type="text" name="rename[2]" value="The.Blind.Side.2009.1080p.BluRay.x264.DTS-FGT.nfo"></span></div>
</td>
<td>5.4 KiB</td>
</tr>
</tbody>
</table>
</div>
脚本:
var inp=$("tr input");
var r="Visit thist Web.com.txt";
for (i = 0; i < inp.length; i++) {
if(inp[i].value == r){
inp[i-1].checked = false;
}
}
How to improve this code?
此 script
仅取消选中 var r="Visit thist Web.com.txt";
,我需要取消选中带有 .txt 的所有文件!这个例子确实只有一个 .txt,但它通常会改变,甚至是顺序。
我还想用 .nfo、.url、jpg、gif 取消标记文件,这就是为什么我认为最好使用 regex
tampermonkey
在 chrome
感谢
您可以将 Jquery filter
函数与正则表达式一起使用。正则表达式:
/\.txt$/gi
正则表达式将匹配文字字符串:'.txt'
最后。
使用方法:
var inp=$("tr input").filter( function (index)
{
return /\.txt$/gi.test($(this).val());
}).closest('tr').find('td:first-child input').prop('checked', false);
这将在匹配元素上将选中的 属性 设置为 false。
要取消选中其他文件类型,您可以将正则表达式更改为:
/\.txt$|\.nfo$|\.url$|\.jpg$|\.gif$/gi
编辑:我仔细研究了你的 html 并更改了我的代码,希望它现在可以工作。
编辑2:
实际上你也可以使用你的原始代码扩展到包括正则表达式:
var inp=$("tr input");
var regex = /\.txt$|\.nfo$|\.url$|\.jpg$|\.gif$/gi;
for (i = 0; i < inp.length; i++) {
if (regex.test(inp[i].value)) {
inp[i-1].checked = false;
}
}