Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 // This file contains UTF8 strings that we want as char arrays. To avoid | 5 // This file contains UTF8 strings that we want as char arrays. To avoid |
| 6 // different compilers, we use a script to convert the UTF8 strings into | 6 // different compilers, we use a script to convert the UTF8 strings into |
| 7 // numeric literals (\x##). | 7 // numeric literals (\x##). |
| 8 | 8 |
| 9 #include "components/autofill/core/browser/autofill_regex_constants.h" | 9 #include "components/autofill/core/browser/autofill_regex_constants.h" |
| 10 | 10 |
| 11 #define WORDBREAK "(\\A|\\z|\\PL)" | |
|
Evan Stade
2015/12/07 23:56:10
could you add a comment explaining this is suppose
tfarina
2015/12/08 12:46:28
Done.
| |
| 12 | |
| 11 namespace autofill { | 13 namespace autofill { |
| 12 | 14 |
| 13 ///////////////////////////////////////////////////////////////////////////// | 15 ///////////////////////////////////////////////////////////////////////////// |
| 14 // address_field.cc | 16 // address_field.cc |
| 15 ///////////////////////////////////////////////////////////////////////////// | 17 ///////////////////////////////////////////////////////////////////////////// |
| 16 const char kAttentionIgnoredRe[] = "attention|attn"; | 18 const char kAttentionIgnoredRe[] = "attention|attn"; |
| 17 const char kRegionIgnoredRe[] = | 19 const char kRegionIgnoredRe[] = |
| 18 "province|region|other" | 20 "province|region|other" |
| 19 "|provincia" // es | 21 "|provincia" // es |
| 20 "|bairro|suburb"; // pt-BR, pt-PT | 22 "|bairro|suburb"; // pt-BR, pt-PT |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 77 "|país|pais" // es | 79 "|país|pais" // es |
| 78 "|国" // ja-JP | 80 "|国" // ja-JP |
| 79 "|国家" // zh-CN | 81 "|国家" // zh-CN |
| 80 "|국가|나라"; // ko-KR | 82 "|국가|나라"; // ko-KR |
| 81 const char kCountryLocationRe[] = | 83 const char kCountryLocationRe[] = |
| 82 "location"; | 84 "location"; |
| 83 const char kZipCodeRe[] = | 85 const char kZipCodeRe[] = |
| 84 "zip|postal|post.*code|pcode" | 86 "zip|postal|post.*code|pcode" |
| 85 "|pin.?code" // en-IN | 87 "|pin.?code" // en-IN |
| 86 "|postleitzahl" // de-DE | 88 "|postleitzahl" // de-DE |
| 87 "|\\bcp\\b" // es | 89 "|" WORDBREAK "cp" WORDBREAK // es |
| 88 "|\\bcdp\\b" // fr-FR | 90 "|" WORDBREAK "cdp" WORDBREAK // fr-FR |
| 89 "|\\bcap\\b" // it-IT | 91 "|" WORDBREAK "cap" WORDBREAK // it-IT |
| 90 "|郵便番号" // ja-JP | 92 "|郵便番号" // ja-JP |
| 91 "|codigo|codpos|\\bcep\\b" // pt-BR, pt-PT | 93 "|codigo|codpos|" WORDBREAK "cep" WORDBREAK // pt-BR, pt-PT |
| 92 "|Почтовый.?Индекс" // ru | 94 "|Почтовый.?Индекс" // ru |
| 93 "|邮政编码|邮编" // zh-CN | 95 "|邮政编码|邮编" // zh-CN |
| 94 "|郵遞區號" // zh-TW | 96 "|郵遞區號" // zh-TW |
| 95 "|우편.?번호"; // ko-KR | 97 "|우편.?번호"; // ko-KR |
| 96 const char kZip4Re[] = | 98 const char kZip4Re[] = |
| 97 "zip|^-$|post2" | 99 "zip|^-$|post2" |
| 98 "|codpos2"; // pt-BR, pt-PT | 100 "|codpos2"; // pt-BR, pt-PT |
| 99 const char kCityRe[] = | 101 const char kCityRe[] = |
| 100 "city|town" | 102 "city|town" |
| 101 "|\\bort\\b|stadt" // de-DE | 103 "|" WORDBREAK "ort" WORDBREAK "|stadt" // de-DE |
| 102 "|suburb" // en-AU | 104 "|suburb" // en-AU |
| 103 "|ciudad|provincia|localidad|poblacion" // es | 105 "|ciudad|provincia|localidad|poblacion" // es |
| 104 "|ville|commune" // fr-FR | 106 "|ville|commune" // fr-FR |
| 105 "|localita" // it-IT | 107 "|localita" // it-IT |
| 106 "|市区町村" // ja-JP | 108 "|市区町村" // ja-JP |
| 107 "|cidade" // pt-BR, pt-PT | 109 "|cidade" // pt-BR, pt-PT |
| 108 "|Город" // ru | 110 "|Город" // ru |
| 109 "|市" // zh-CN | 111 "|市" // zh-CN |
| 110 "|分區" // zh-TW | 112 "|分區" // zh-TW |
| 111 "|^시[^도·・]|시[·・]?군[·・]?구"; // ko-KR | 113 "|^시[^도·・]|시[·・]?군[·・]?구"; // ko-KR |
| 112 const char kStateRe[] = | 114 const char kStateRe[] = |
| 113 "(?<!united )state|county|region|province" | 115 "state|county|region|province" |
| 114 "|land" // de-DE | 116 "|land" // de-DE |
| 115 "|county|principality" // en-UK | 117 "|county|principality" // en-UK |
| 116 "|都道府県" // ja-JP | 118 "|都道府県" // ja-JP |
| 117 "|estado|provincia" // pt-BR, pt-PT | 119 "|estado|provincia" // pt-BR, pt-PT |
| 118 "|область" // ru | 120 "|область" // ru |
| 119 "|省" // zh-CN | 121 "|省" // zh-CN |
| 120 "|地區" // zh-TW | 122 "|地區" // zh-TW |
| 121 "|^시[·・]?도"; // ko-KR | 123 "|^시[·・]?도"; // ko-KR |
| 122 | 124 |
| 123 ///////////////////////////////////////////////////////////////////////////// | 125 ///////////////////////////////////////////////////////////////////////////// |
| 124 // credit_card_field.cc | 126 // credit_card_field.cc |
| 125 ///////////////////////////////////////////////////////////////////////////// | 127 ///////////////////////////////////////////////////////////////////////////// |
| 126 const char kNameOnCardRe[] = | 128 const char kNameOnCardRe[] = |
| 127 "card.?(holder|owner)|name.*\\bon\\b.*card|(card|cc).?name|cc.?full.?name" | 129 "card.?(holder|owner)|name.*" WORDBREAK "on" WORDBREAK |
| 128 "|karteninhaber" // de-DE | 130 ".*card|(card|cc).?name|cc.?full.?name" |
|
Ilya Sherman
2015/12/07 23:49:25
nit: Please wrap this as
"card.?(holder|owner
tfarina
2015/12/08 12:46:28
Done.
| |
| 129 "|nombre.*tarjeta" // es | 131 "|karteninhaber" // de-DE |
| 130 "|nom.*carte" // fr-FR | 132 "|nombre.*tarjeta" // es |
| 131 "|nome.*cart" // it-IT | 133 "|nom.*carte" // fr-FR |
| 132 "|名前" // ja-JP | 134 "|nome.*cart" // it-IT |
| 133 "|Имя.*карты" // ru | 135 "|名前" // ja-JP |
| 136 "|Имя.*карты" // ru | |
| 134 "|信用卡开户名|开户名|持卡人姓名" // zh-CN | 137 "|信用卡开户名|开户名|持卡人姓名" // zh-CN |
| 135 "|持卡人姓名"; // zh-TW | 138 "|持卡人姓名"; // zh-TW |
|
Ilya Sherman
2015/12/07 23:49:25
nit: Please revert these alignment changes.
tfarina
2015/12/08 12:46:28
Sorry, that was clang format. Reverted.
| |
| 136 const char kNameOnCardContextualRe[] = | 139 const char kNameOnCardContextualRe[] = |
| 137 "name"; | 140 "name"; |
| 138 const char kCardNumberRe[] = | 141 const char kCardNumberRe[] = |
| 139 "(card|cc|acct).?(number|#|no|num)" | 142 "(card|cc|acct).?(number|#|no|num)" |
| 140 "|nummer" // de-DE | 143 "|nummer" // de-DE |
| 141 "|credito|numero|número" // es | 144 "|credito|numero|número" // es |
| 142 "|numéro" // fr-FR | 145 "|numéro" // fr-FR |
| 143 "|カード番号" // ja-JP | 146 "|カード番号" // ja-JP |
| 144 "|Номер.*карты" // ru | 147 "|Номер.*карты" // ru |
| 145 "|信用卡号|信用卡号码" // zh-CN | 148 "|信用卡号|信用卡号码" // zh-CN |
| 146 "|信用卡卡號" // zh-TW | 149 "|信用卡卡號" // zh-TW |
| 147 "|카드"; // ko-KR | 150 "|카드"; // ko-KR |
| 148 const char kCardCvcRe[] = | 151 const char kCardCvcRe[] = |
| 149 "verification|card identification|security code|card code" | 152 "verification|card identification|security code|card code" |
| 150 "|cvn|cvv|cvc|csc|cvd|cid|ccv" | 153 "|cvn|cvv|cvc|csc|cvd|cid|ccv" |
| 151 "|\\bcid\\b"; | 154 "|" WORDBREAK "cid" WORDBREAK; |
| 152 | 155 |
| 153 // "Expiration date" is the most common label here, but some pages have | 156 // "Expiration date" is the most common label here, but some pages have |
| 154 // "Expires", "exp. date" or "exp. month" and "exp. year". We also look | 157 // "Expires", "exp. date" or "exp. month" and "exp. year". We also look |
| 155 // for the field names ccmonth and ccyear, which appear on at least 4 of | 158 // for the field names ccmonth and ccyear, which appear on at least 4 of |
| 156 // our test pages. | 159 // our test pages. |
| 157 | 160 |
| 158 // On at least one page (The China Shop2.html) we find only the labels | 161 // On at least one page (The China Shop2.html) we find only the labels |
| 159 // "month" and "year". So for now we match these words directly; we'll | 162 // "month" and "year". So for now we match these words directly; we'll |
| 160 // see if this turns out to be too general. | 163 // see if this turns out to be too general. |
| 161 | 164 |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 240 "|^nome"; // pt-BR, pt-PT | 243 "|^nome"; // pt-BR, pt-PT |
| 241 const char kFirstNameRe[] = | 244 const char kFirstNameRe[] = |
| 242 "first.*name|initials|fname|first$|given.*name" | 245 "first.*name|initials|fname|first$|given.*name" |
| 243 "|vorname" // de-DE | 246 "|vorname" // de-DE |
| 244 "|nombre" // es | 247 "|nombre" // es |
| 245 "|forename|prénom|prenom" // fr-FR | 248 "|forename|prénom|prenom" // fr-FR |
| 246 "|名" // ja-JP | 249 "|名" // ja-JP |
| 247 "|nome" // pt-BR, pt-PT | 250 "|nome" // pt-BR, pt-PT |
| 248 "|Имя" // ru | 251 "|Имя" // ru |
| 249 "|이름"; // ko-KR | 252 "|이름"; // ko-KR |
| 250 const char kMiddleInitialRe[] = "middle.*initial|m\\.i\\.|mi$|\\bmi\\b"; | 253 const char kMiddleInitialRe[] = |
| 254 "middle.*initial|m\\.i\\.|mi$|" WORDBREAK "mi" WORDBREAK; | |
| 251 const char kMiddleNameRe[] = | 255 const char kMiddleNameRe[] = |
| 252 "middle.*name|mname|middle$" | 256 "middle.*name|mname|middle$" |
| 253 "|apellido.?materno|lastlastname"; // es | 257 "|apellido.?materno|lastlastname"; // es |
| 254 const char kLastNameRe[] = | 258 const char kLastNameRe[] = |
| 255 "last.*name|lname|surname|last$|secondname|family.*name" | 259 "last.*name|lname|surname|last$|secondname|family.*name" |
| 256 "|nachname" // de-DE | 260 "|nachname" // de-DE |
| 257 "|apellido" // es | 261 "|apellido" // es |
| 258 "|famille|^nom" // fr-FR | 262 "|famille|^nom" // fr-FR |
| 259 "|cognome" // it-IT | 263 "|cognome" // it-IT |
| 260 "|姓" // ja-JP | 264 "|姓" // ja-JP |
| (...skipping 25 matching lines...) Expand all Loading... | |
| 286 "^-$|^\\)$"; | 290 "^-$|^\\)$"; |
| 287 const char kPhoneSuffixSeparatorRe[] = | 291 const char kPhoneSuffixSeparatorRe[] = |
| 288 "^-$"; | 292 "^-$"; |
| 289 const char kPhonePrefixRe[] = | 293 const char kPhonePrefixRe[] = |
| 290 "prefix|exchange" | 294 "prefix|exchange" |
| 291 "|preselection" // fr-FR | 295 "|preselection" // fr-FR |
| 292 "|ddd"; // pt-BR, pt-PT | 296 "|ddd"; // pt-BR, pt-PT |
| 293 const char kPhoneSuffixRe[] = | 297 const char kPhoneSuffixRe[] = |
| 294 "suffix"; | 298 "suffix"; |
| 295 const char kPhoneExtensionRe[] = | 299 const char kPhoneExtensionRe[] = |
| 296 "\\bext|ext\\b|extension" | 300 WORDBREAK "ext|ext" WORDBREAK "|extension" |
| 297 "|ramal"; // pt-BR, pt-PT | 301 "|ramal"; // pt-BR, pt-PT |
| 298 | 302 |
| 299 } // namespace autofill | 303 } // namespace autofill |
| OLD | NEW |