【发布时间】:2012-04-02 16:12:18
【问题描述】:
我正在尝试筛选加载到 Web 视图中的 HTML 表单的用户名和文本字段。以前我尝试过这种方法来缩小我需要的相应文本字段的范围,但它很乏味,并且变量的计算没有尽头。尽管我认为我列出了很多变量,但它仍然是一个命中注定的解决方案,并非所有网站都能正常工作。
var inputFields = document.querySelectorAll("input[type='text']");
for (var i = inputFields.length >>> 0; i--;) {
if ( (inputFields[i].getAttribute('name') == 'email')
|| (inputFields[i].getAttribute('name') == 'Email')
|| (inputFields[i].getAttribute('name') == 'e-mail')
|| (inputFields[i].getAttribute('name') == 'E-mail')
|| (inputFields[i].getAttribute('name') == 'emailerr')
|| (inputFields[i].getAttribute('name') == 'UID')
|| (inputFields[i].getAttribute('name') == 'uid')
|| (inputFields[i].getAttribute('name') == 'username')
|| (inputFields[i].getAttribute('name') == 'Username')
|| (inputFields[i].getAttribute('name') == 'userName')
|| (inputFields[i].getAttribute('name') == 'user_name')
|| (inputFields[i].getAttribute('name') == 'User_Name')
|| (inputFields[i].getAttribute('name') == 'User_name')
|| (inputFields[i].getAttribute('name') == 'userid')
|| (inputFields[i].getAttribute('name') == 'userID')
|| (inputFields[i].getAttribute('name') == 'UserID')
|| (inputFields[i].getAttribute('name') == 'Userid')
|| (inputFields[i].getAttribute('name') == 'ID')
|| (inputFields[i].getAttribute('name') == 'id')
|| (inputFields[i].getAttribute('name') == 'j_username')
|| (inputFields[i].getAttribute('name') == 'session_key')
|| (inputFields[i].getAttribute('name') == 'login_password')) {
inputFields[i].value = '%@';}}
然后我被告知了正则表达式,但我对它不是很熟悉,我阅读了一些关于它的教程,但不是针对我的项目来尝试了解它的含义,我拼出了这段代码,这也是一个热门和错过解决方案。我什至不确定我是否做得对,但这次代码肯定很短。
var inputFields = document.querySelectorAll("input[type='text']");
for (var i = inputFields.length >>> 0; i--;) {
regStr = /(mail|user|iden|name|id|key|login|username|email)/i;
searchName = inputFields[i].getAttribute('name').search(regStr);
searchId = inputFields[i].getAttribute('id').search(regStr);
if (!(searchName == -1) || !(searchId == -1)){
inputFields[i].value = '%@';}}
谁能告诉我我是否正确地完成了这个正则表达式?我真的不知道。有些网站有效,有些网站无效。我知道我正在搜索的内容可以由开发人员配置,并且我不会在所有网站上获得 100% 的点击率,但令我困惑的是,有时即使该术语与我的搜索变量之一完全匹配,它也不起作用。
【问题讨论】:
-
这很难读。你能只显示 Javascript 而忽略 Apple 的特殊对象吗?
标签: javascript html regex xcode forms