Как использовать Regex от снятия отметки всех файлов по форматам файлов - PullRequest
0 голосов
/ 27 ноября 2018

Мне нужно снять много файлов с этого HTML с JQuery 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;
 }
}

Как улучшить этот код?

Этот script снимите только галочку var r="Visit thist Web.com.txt";, и мне нужно снять все файлы с .txt !Это правда, что в этом примере только один .txt, но он обычно меняется, даже порядок.Я также хотел бы снять отметки с файлов .nfo, .url, jpg, gif, поэтому я полагаю, что было бы лучше сделать это с помощью регулярных выражений

для tampermonkey на chrome

Спасибо

1 Ответ

0 голосов
/ 28 ноября 2018

Вы можете использовать функцию 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);

Это установит для свойства selected значение false для соответствующих элементов.

Чтобы снять флажки с других типов файлов, вы можете изменить регулярное выражение на:

/\.txt$|\.nfo$|\.url$|\.jpg$|\.gif$/gi

Редактировать :Я немного изучил ваш HTML и изменил свой код, надеюсь, он работает сейчас.

Edit2 :

На самом деле вы также можете использовать свой исходный код, расширенный для включения регулярных выражений.:

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;
 }
}
...