javascript - 带有 XCode 的正则表达式 Javascript

标签 javascript html regex xcode forms

我正在尝试筛选出在 Web View 中加载的 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 = '%@';}}

然后有人告诉我有关 RegularExpression 的信息,但我对它不是很熟悉,我阅读了一些关于它的教程,但不是针对我的项目,以尝试了解它的含义,然后我拼凑出这段代码,它也很受欢迎错过解决方案。我什至不确定我是否做对了,但这次代码肯定很短。

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 = '%@';}}

有人能告诉我这个 RegularExpression 是否正确吗?我真的不知道。有些网站有效,有些无效。我知道我正在搜索的内容可由开发人员配置,我不会在所有网站上都获得 100% 的命中率,但让我感到困惑的是,有时即使该术语与我的搜索变量之一完全匹配,它也不起作用。

最佳答案

这就是斯巴达!

您的 RegExp 与您在 looong 代码中提供的值列表不匹配。

var opts = "email,e-mail,emailerr,uid,username,userid,id,j_username," +
    "session_key,login_password,live,liveid,live_id,live_email";
var re = new RegExp(opts.replace(/,/g, "|"), "i");
if (re.test(inputFields[i].getAttribute('name'))) {
    inputFields[i].value = '%@';
}

PS:您不会将其用作垃圾邮件工具,对吧?

关于javascript - 带有 XCode 的正则表达式 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9979874/

相关文章:

javascript - 如果字符串是单个字符,则替换该字符串,如果后跟另一个字符则不替换

html - 如何以查看源代码模式启动浏览器?

html - anchor 标签div名称

regex - 日志文件中的Logstash可选字段

javascript - 如何在 JavaScript 中检索多行注释中的字符串内容

javascript - 在 @compnent 动画 Angular 7 中使用类变量

javascript - Internet Explorer 和 Office 加载项之间不共享持久 cookie

javascript - 如何将此 JavaScript 应用于所选图像?

javascript - localStorage getItem 未定义

javascript - 标签之间的正则表达式匹配文本太贪婪