表单自动填充启发式算法

表单自动填充启发式算法模块用于根据autocomplete 属性正则表达式以及每个解析器中的自定义逻辑来检测字段类型。

调试

首选项 extensions.formautofill.heuristics.enabled 默认值为“true”。将其设置为“false”可以帮助验证 autocomplete 属性的结果。

依赖 API

element.getAutocompleteInfo() 提供了 autocomplete 属性的解析结果,其中包括在自动填充规范中定义的字段名称和部分信息。

正则表达式

本节介绍在解析字段期间如何应用正则表达式。所有正则表达式都位于 HeuristicsRegexp.sys.mjs 中。

解析器实现

解析器用于根据字段的附近上下文更准确地检测字段类型。每个解析器都使用 FieldScanner 遍历感兴趣的字段,并结合正则表达式的结果,在匹配语法时调整每个字段的类型。

  • _parsePhoneFields

    • 相关类型:teltel-*

  • _parseStreetAddressFields

    • 相关类型:street-address`, `address-line[1-3]

  • _parseAddressFields

    • 相关类型:address-level[1-2]

  • _parseCreditCardExpiryFields

    • 相关类型:cc-expcc-exp-monthcc-exp-year

  • _parseCreditCardNameFields

    • 相关类型:cc-namegiven-nameadditional-namefamily-name

  • _parseCreditCardNumberFields

    • 相关类型:cc-number