繁体   English   中英

如何使用 Javascript 查找用户定义的 email 地址与 web 列表完全匹配

[英]How to Find the user define email address exact match to a web list using Javascript

用户将提供一个特定的 email 地址。 在本例中,varEmail = "admin@domain-name.onmicrosoft.com"。 现在我必须以编程方式在 web 页面列表上检查它。 我应该能够返回 web 页面列表中用户定义的 email 地址的精确匹配。

目前,我的试用环境中有这 (2) 个 email 地址。 在此处输入图像描述

我还使用这个 Javascript 来获取 web 页面列表中的 email 之一。

(Array.from(document.getElementsByClassName("ms-List-surface")[2].getElementsByClassName("ms-List-cell")).filter(name => name.textContent.match(/admin@domain-name.onmicrosoft.com/)))

我怎么得到 2 output 而不是确切的用户定义 email 地址。 Output: psi-admi@domain-name.onmicrosoft.com admin@domain-name.onmicrosoft.com

在此处输入图像描述

我希望这里有人会注意到我的帖子并帮助我解决这个问题。 谢谢大家!


只是一个更新,这是我到目前为止所尝试过的。

Array.from(document.getElementsByClassName("ms-List-surface")[2].getElementsByClassName("ms-List-cell")).filter(acct => acct.textContent === 'admin@domain-name.onmicrosoft.com');

返回空空结果

顺便说一句,下面是我需要从中获取电子邮件/帐户的页面的屏幕截图。 合规新内容搜索

我猜你的 HTML 中的数据有一些垃圾,这就是为什么精确匹配找不到你需要的东西。

在比较之前尝试清理字符串,例如:

filter(name => name.textContent.trim().toLowerCase() === 'admin@domain-name.onmicrosoft.com')

这样你就可以删除字符串开头和结尾的所有空格,并将其转换为小写(以防万一有人搞砸了)

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/Trim

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/tolowercase

此查询已解决。 感谢我的经理的帮助,他解决了这一切。 再一次,我刚刚见证了一个很酷的专业开发人员的职业道德,从识别位置和方式、正确的搜索关键字等等。

所以,耶,新提要,新学习!

这是他与我分享的代码行。

const userRow = document.evaluate("//div[text()='admin@domain-name.onmicrosoft.com']", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue.offsetParent;

他检查并分析了控制台的结果。 由于我使用的是 'textContent' 或 'innerText',我们去那里看看它的价值。 我们发现两者都附加了多余的字符串(例如 usernameadmin@domain-name.onmicrosoft.com ) ,这就是上述建议的解决方案不起作用的原因(顺便说一下,我要感谢@Facundo 和@tromgy ).

从那里,他找到了解决问题的方法并提出了解决方案。

请参阅以下链接供您参考:

如何通过innerText获取元素

HTMLElement.offsetParent

JavaScript中XPath的使用介绍

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM