Javascript 中不区分大小写的 textContent
case insensitive textContent in Javascript
我有以下代码使用我来处理网页中具有特定文本内容的所有链接:
let links = document.querySelectorAll('a b');
for (let i = 0; i < links.length; i++) {
let link = links[i];
if (link.textContent == 'remove') {
link.click();
}
}
在某个网页中,链接在网页上名为'remove',但在DOM中显示为'Remove'(不是大写的R)。
一开始我不知道 DOM 是这种情况,也不明白为什么代码不起作用。
很高兴,我觉得它在 DOM 中有所不同,事实上我认为我是对的,当我在代码中将它从 if (link.textContent == 'remove')
更改为 if (link.textContent == 'Remove')
时,代码有效。
作为初学者,我只是出于好奇才问(因为我谦虚地知道这样的网页-DOM 可能会出现差异):
有没有办法让 textContent 检查在 vanilla JS 中不区分大小写?
我相信答案会包括正则表达式,但我必须参加任何正则表达式课程(应该很快就会进行),目前我自己无法回答。
您可以使用 javscript 函数将文本更改为小写。
在这里,我只是创建一个变量名文本,然后在 if 条件下使用 toLowerCase() 函数。谢谢
var text = link.textContent;
if (text.toLowerCase() == 'remove') {
text.click();
}
编辑:代码缩进
我会将您转到此页面:
JavaScript case insensitive string comparison
简而言之,您可以使用 toUpperCase() 或 简单地比较两个字符串的大写版本(或小写版本)以检查它们是否为 ignoreCaseEqual toLowerCase() 函数如下所述:
string1.toUpperCase() === string2.toUpperCase();
string1.toLowerCase() === string2.toLowerCase();
在您的情况下,只需使用:
if (link.textContent.toLowerCase() == 'remove') {
// since remove is already lowercase
// do stuff
}
为什么不使用 toLowerCase 函数?
let links = document.querySelectorAll('a b');
for (let i = 0; i < links.length; i++) {
let link = links[i];
if (link.textContent.toLowerCase() == 'remove') {
link.click();
}
}
比较remove、Remove甚至REMOVE都没关系。
我有以下代码使用我来处理网页中具有特定文本内容的所有链接:
let links = document.querySelectorAll('a b');
for (let i = 0; i < links.length; i++) {
let link = links[i];
if (link.textContent == 'remove') {
link.click();
}
}
在某个网页中,链接在网页上名为'remove',但在DOM中显示为'Remove'(不是大写的R)。
一开始我不知道 DOM 是这种情况,也不明白为什么代码不起作用。
很高兴,我觉得它在 DOM 中有所不同,事实上我认为我是对的,当我在代码中将它从 if (link.textContent == 'remove')
更改为 if (link.textContent == 'Remove')
时,代码有效。
作为初学者,我只是出于好奇才问(因为我谦虚地知道这样的网页-DOM 可能会出现差异):
有没有办法让 textContent 检查在 vanilla JS 中不区分大小写?
我相信答案会包括正则表达式,但我必须参加任何正则表达式课程(应该很快就会进行),目前我自己无法回答。
您可以使用 javscript 函数将文本更改为小写。 在这里,我只是创建一个变量名文本,然后在 if 条件下使用 toLowerCase() 函数。谢谢
var text = link.textContent;
if (text.toLowerCase() == 'remove') {
text.click();
}
编辑:代码缩进
我会将您转到此页面: JavaScript case insensitive string comparison
简而言之,您可以使用 toUpperCase() 或 简单地比较两个字符串的大写版本(或小写版本)以检查它们是否为 ignoreCaseEqual toLowerCase() 函数如下所述:
string1.toUpperCase() === string2.toUpperCase();
string1.toLowerCase() === string2.toLowerCase();
在您的情况下,只需使用:
if (link.textContent.toLowerCase() == 'remove') {
// since remove is already lowercase
// do stuff
}
为什么不使用 toLowerCase 函数?
let links = document.querySelectorAll('a b');
for (let i = 0; i < links.length; i++) {
let link = links[i];
if (link.textContent.toLowerCase() == 'remove') {
link.click();
}
}
比较remove、Remove甚至REMOVE都没关系。