如果 URL 包含 6 位数值并且包含 .pdf、.doc、.xls 等,则将数值附加到 class
If URL contains 6 digit numeric value AND contains .pdf, .doc, .xls etc append the numeric value to a class
这是对我之前提出的问题的补充,但是包含一些我无法破解的额外问题。我再次四处搜索,如果有人回答,我深表歉意。我还在学习,所以请放轻松。
下面的代码正确地在 URL 中查找 6 位数字值,并将该数字值和 'pdf' 作为 class 添加到 href。
var regex = /[0-9]{1,6}/;
$('a').each(function() {
$(this).addClass('pdf' + regex.exec($(this).attr("href"))[0]);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<a href="https://www.pdflinks.com/files/190488/nameoffile.pdf">Link1</a>
<a href="https://www.pdflinks.com/files/112254/nameoffile.pdf">Link2</a>
问题 1
如何检查 6 位数字值以及 URL 是否包含任何文档扩展名类型,例如 .pdf、.doc、.xls 大写或小写等?我尝试了以下方法,但我的正则表达式运算符似乎有问题。我也尝试用 'positive lookahead' 断言分隔表达式,但无济于事。
var regex = /[0-9]{1,6}/\.(pdf|doc|docx|ppt|pptx|xls|slxs|epub|odp|ods|txt|rtf)$/i;
$('a').each(function() {
$(this).addClass('pdf' + regex.exec($(this).attr("href"))[0]);
});
问题 2
如果页面包含 link 和不合格的 URL(没有 6 位数字值或文档扩展名),则该功能将停止在那里,并且不会检查其他 link。 (下面的示例)我怎样才能使代码检查并跳过非限定符并覆盖所有匹配正则表达式的 link?
var regex = /[0-9]{1,6}/;
$('a').each(function() {
$(this).addClass('pdf' + regex.exec($(this).attr("href"))[0]);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<a href="https://www.pdflinks.com/files/190488/nameoffile.pdf">Link1</a><br>
<a href="https://www.pdflinks.com/files/112254/nameoffile.pdf">Link2</a><br>
<a href="https://www.pdflinks.com/files/nameoffile.pdf">Link3</a><br>
<a href="https://www.pdflinks.com/files/145254/nameoffile.pdf">Link4</a><br>
<a href="https://www.pdflinks.com/files/154254/nameoffile.pdf">Link5</a><br>
再次感谢您。
您可以直接使用 addClass,带有回调,然后根据扩展名添加 class,或者根本不添加
$('a').addClass(function() {
if ( !this.href.match(/[0-9]{1,6}/ ) ) return "";
var ext = this.href.match(/\.(pdf|doc|docx|ppt|pptx|xls|slxs|epub|odp|ods|txt|rtf)$/i);
return ext[1] || "";
});
.pdf {color: red}
.doc {color: green}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<a href="https://www.pdflinks.com/files/190488/nameoffile.pdf">Link1</a><br>
<a href="https://www.pdflinks.com/files/112254/nameoffile.pdf">Link2</a><br>
<a href="https://www.pdflinks.com/files/nameoffile.pdf">Link3</a><br>
<a href="https://www.pdflinks.com/files/145254/nameoffile.pdf">Link4</a><br>
<a href="https://www.pdflinks.com/files/154254/nameoffile.pdf">Link5</a><br>
<a href="https://www.pdflinks.com/files/145254/nameoffile.doc">Link4</a><br>
请试试这个:
var regex = /\/([0-9]{1,6})\//ig;
$('a').each(function() {
if ( !this.href.match(regex) ) return;
$(this).addClass('pdf' + regex.exec($(this).attr("href"))[1]);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<a href="https://www.pdflinks.com/files/190488/nameoffile.pdf">Link1</a><br>
<a href="https://www.pdflinks.com/files/112254/nameoffile.pdf">Link2</a><br>
<a href="https://www.pdflinks.com/files/nameoffile.pdf">Link3</a><br>
<a href="https://www.pdflinks.com/files/145254/nameoffile.pdf">Link4</a><br>
<a href="https://www.pdflinks.com/files/154254/nameoffile.pdf">Link5</a><br>
更新:21/03/2017
$(document).ready(function() {
// Executes when the HTML document is loaded and ONLY the DOM is ready
alert("Document is ready");
});
// .load() method deprecated from jQuery 1.8 onward
$(window).on("load", function() {
// Executes when complete page is fully loaded, including
// all frames, objects and images
// This is what you need
alert("Window is loaded");
});
这是对我之前提出的问题的补充,但是包含一些我无法破解的额外问题。我再次四处搜索,如果有人回答,我深表歉意。我还在学习,所以请放轻松。
下面的代码正确地在 URL 中查找 6 位数字值,并将该数字值和 'pdf' 作为 class 添加到 href。
var regex = /[0-9]{1,6}/;
$('a').each(function() {
$(this).addClass('pdf' + regex.exec($(this).attr("href"))[0]);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<a href="https://www.pdflinks.com/files/190488/nameoffile.pdf">Link1</a>
<a href="https://www.pdflinks.com/files/112254/nameoffile.pdf">Link2</a>
问题 1
如何检查 6 位数字值以及 URL 是否包含任何文档扩展名类型,例如 .pdf、.doc、.xls 大写或小写等?我尝试了以下方法,但我的正则表达式运算符似乎有问题。我也尝试用 'positive lookahead' 断言分隔表达式,但无济于事。
var regex = /[0-9]{1,6}/\.(pdf|doc|docx|ppt|pptx|xls|slxs|epub|odp|ods|txt|rtf)$/i;
$('a').each(function() {
$(this).addClass('pdf' + regex.exec($(this).attr("href"))[0]);
});
问题 2
如果页面包含 link 和不合格的 URL(没有 6 位数字值或文档扩展名),则该功能将停止在那里,并且不会检查其他 link。 (下面的示例)我怎样才能使代码检查并跳过非限定符并覆盖所有匹配正则表达式的 link?
var regex = /[0-9]{1,6}/;
$('a').each(function() {
$(this).addClass('pdf' + regex.exec($(this).attr("href"))[0]);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<a href="https://www.pdflinks.com/files/190488/nameoffile.pdf">Link1</a><br>
<a href="https://www.pdflinks.com/files/112254/nameoffile.pdf">Link2</a><br>
<a href="https://www.pdflinks.com/files/nameoffile.pdf">Link3</a><br>
<a href="https://www.pdflinks.com/files/145254/nameoffile.pdf">Link4</a><br>
<a href="https://www.pdflinks.com/files/154254/nameoffile.pdf">Link5</a><br>
再次感谢您。
您可以直接使用 addClass,带有回调,然后根据扩展名添加 class,或者根本不添加
$('a').addClass(function() {
if ( !this.href.match(/[0-9]{1,6}/ ) ) return "";
var ext = this.href.match(/\.(pdf|doc|docx|ppt|pptx|xls|slxs|epub|odp|ods|txt|rtf)$/i);
return ext[1] || "";
});
.pdf {color: red}
.doc {color: green}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<a href="https://www.pdflinks.com/files/190488/nameoffile.pdf">Link1</a><br>
<a href="https://www.pdflinks.com/files/112254/nameoffile.pdf">Link2</a><br>
<a href="https://www.pdflinks.com/files/nameoffile.pdf">Link3</a><br>
<a href="https://www.pdflinks.com/files/145254/nameoffile.pdf">Link4</a><br>
<a href="https://www.pdflinks.com/files/154254/nameoffile.pdf">Link5</a><br>
<a href="https://www.pdflinks.com/files/145254/nameoffile.doc">Link4</a><br>
请试试这个:
var regex = /\/([0-9]{1,6})\//ig;
$('a').each(function() {
if ( !this.href.match(regex) ) return;
$(this).addClass('pdf' + regex.exec($(this).attr("href"))[1]);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<a href="https://www.pdflinks.com/files/190488/nameoffile.pdf">Link1</a><br>
<a href="https://www.pdflinks.com/files/112254/nameoffile.pdf">Link2</a><br>
<a href="https://www.pdflinks.com/files/nameoffile.pdf">Link3</a><br>
<a href="https://www.pdflinks.com/files/145254/nameoffile.pdf">Link4</a><br>
<a href="https://www.pdflinks.com/files/154254/nameoffile.pdf">Link5</a><br>
更新:21/03/2017
$(document).ready(function() {
// Executes when the HTML document is loaded and ONLY the DOM is ready
alert("Document is ready");
});
// .load() method deprecated from jQuery 1.8 onward
$(window).on("load", function() {
// Executes when complete page is fully loaded, including
// all frames, objects and images
// This is what you need
alert("Window is loaded");
});