- add sources.
[platform/framework/web/crosswalk.git] / src / components / autofill / core / browser / autofill_regex_constants.cc.utf8
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
3 // found in the LICENSE file.
4
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
7 // numeric literals (\x##).
8
9 #include "components/autofill/core/browser/autofill_regex_constants.h"
10
11 namespace autofill {
12
13 /////////////////////////////////////////////////////////////////////////////
14 // address_field.cc
15 /////////////////////////////////////////////////////////////////////////////
16 const char kAttentionIgnoredRe[] = "attention|attn";
17 const char kRegionIgnoredRe[] =
18     "province|region|other"
19     "|provincia"  // es
20     "|bairro|suburb";  // pt-BR, pt-PT
21 const char kCompanyRe[] =
22     "company|business|organization|organisation"
23     "|firma|firmenname"  // de-DE
24     "|empresa"  // es
25     "|societe|société"  // fr-FR
26     "|ragione.?sociale"  // it-IT
27     "|会社"  // ja-JP
28     "|название.?компании"  // ru
29     "|单位|公司"  // zh-CN
30     "|회사|직장";  // ko-KR
31 const char kAddressLine1Re[] =
32     "address.*line|address1|addr1|street"
33     "|strasse|straße|hausnummer|housenumber"  // de-DE
34     "|house.?name"  // en-GB
35     "|direccion|dirección"  // es
36     "|adresse"  // fr-FR
37     "|indirizzo"  // it-IT
38     "|住所1"  // ja-JP
39     "|morada|endereço"  // pt-BR, pt-PT
40     "|Адрес"  // ru
41     "|地址"  // zh-CN
42     "|주소.?1";  // ko-KR
43 const char kAddressLine1LabelRe[] =
44     "address"
45     "|adresse"  // fr-FR
46     "|indirizzo"  // it-IT
47     "|住所"  // ja-JP
48     "|地址"  // zh-CN
49     "|주소";  // ko-KR
50 const char kAddressLine2Re[] =
51     "address.*line2|address2|addr2|street|suite|unit"
52     "|adresszusatz|ergänzende.?angaben"  // de-DE
53     "|direccion2|colonia|adicional"  // es
54     "|addresssuppl|complementnom|appartement"  // fr-FR
55     "|indirizzo2"  // it-IT
56     "|住所2"  // ja-JP
57     "|complemento|addrcomplement"  // pt-BR, pt-PT
58     "|Улица"  // ru
59     "|地址2"  // zh-CN
60     "|주소.?2";  // ko-KR
61 const char kAddressLine2LabelRe[] =
62     "address"
63     "|adresse"  // fr-FR
64     "|indirizzo"  // it-IT
65     "|地址"  // zh-CN
66     "|주소";  // ko-KR
67 const char kAddressLinesExtraRe[] =
68     "address.*line[3-9]|address[3-9]|addr[3-9]|street|line[3-9]"
69     "|municipio"  // es
70     "|batiment|residence"  // fr-FR
71     "|indirizzo[3-9]";  // it-IT
72 const char kCountryRe[] =
73     "country|countries|location"
74     "|país|pais"  // es
75     "|国"  // ja-JP
76     "|国家"  // zh-CN
77     "|국가|나라";  // ko-KR
78 const char kZipCodeRe[] =
79     "zip|postal|post.*code|pcode|^1z$"
80     "|pin.?code"  // en-IN
81     "|postleitzahl"  // de-DE
82     "|\\bcp\\b"  // es
83     "|\\bcdp\\b"  // fr-FR
84     "|\\bcap\\b"  // it-IT
85     "|郵便番号"  // ja-JP
86     "|codigo|codpos|\\bcep\\b"  // pt-BR, pt-PT
87     "|Почтовый.?Индекс"  // ru
88     "|邮政编码|邮编"  // zh-CN
89     "|郵遞區號"  // zh-TW
90     "|우편.?번호";  // ko-KR
91 const char kZip4Re[] =
92     "zip|^-$|post2"
93     "|codpos2";  // pt-BR, pt-PT
94 const char kCityRe[] =
95     "city|town"
96     "|\\bort\\b|stadt"  // de-DE
97     "|suburb"  // en-AU
98     "|ciudad|provincia|localidad|poblacion"  // es
99     "|ville|commune"  // fr-FR
100     "|localita"  // it-IT
101     "|市区町村"  // ja-JP
102     "|cidade"  // pt-BR, pt-PT
103     "|Город"  // ru
104     "|市"  // zh-CN
105     "|分區"  // zh-TW
106     "|^시[^도·・]|시[·・]?군[·・]?구";  // ko-KR
107 const char kStateRe[] =
108     "(?<!united )state|county|region|province"
109     "|land"  // de-DE
110     "|county|principality"  // en-UK
111     "|都道府県"  // ja-JP
112     "|estado|provincia"  // pt-BR, pt-PT
113     "|область"  // ru
114     "|省"  // zh-CN
115     "|地區"  // zh-TW
116     "|^시[·・]?도";  // ko-KR
117 const char kAddressTypeSameAsRe[] = "same as";
118 const char kAddressTypeUseMyRe[] = "use my";
119 const char kBillingDesignatorRe[] = "bill";
120 const char kShippingDesignatorRe[] = "ship";
121
122 /////////////////////////////////////////////////////////////////////////////
123 // credit_card_field.cc
124 /////////////////////////////////////////////////////////////////////////////
125 const char kNameOnCardRe[] =
126     "card.?holder|name.*\\bon\\b.*card|cc.?name|cc.?full.?name|owner"
127     "|karteninhaber"  // de-DE
128     "|nombre.*tarjeta"  // es
129     "|nom.*carte"  // fr-FR
130     "|nome.*cart"  // it-IT
131     "|名前"  // ja-JP
132     "|Имя.*карты"  // ru
133     "|信用卡开户名|开户名|持卡人姓名"  // zh-CN
134     "|持卡人姓名";  // zh-TW
135 const char kNameOnCardContextualRe[] =
136     "name";
137 const char kCardNumberRe[] =
138     "card.?number|card.?#|card.?no|cc.?num|acct.?num"
139     "|nummer"  // de-DE
140     "|credito|numero|número"  // es
141     "|numéro"  // fr-FR
142     "|カード番号"  // ja-JP
143     "|Номер.*карты"  // ru
144     "|信用卡号|信用卡号码"  // zh-CN
145     "|信用卡卡號"  // zh-TW
146     "|카드";  // ko-KR
147 const char kCardCvcRe[] =
148     "verification|card identification|security code|cvn|cvv|cvc|csc|\\bcid\\b";
149 const char kCardTypeRe[] =
150     "card.?type|cc.?type|payment.?method";
151
152 // "Expiration date" is the most common label here, but some pages have
153 // "Expires", "exp. date" or "exp. month" and "exp. year".  We also look
154 // for the field names ccmonth and ccyear, which appear on at least 4 of
155 // our test pages.
156
157 // On at least one page (The China Shop2.html) we find only the labels
158 // "month" and "year".  So for now we match these words directly; we'll
159 // see if this turns out to be too general.
160
161 // Toolbar Bug 51451: indeed, simply matching "month" is too general for
162 //   https://rps.fidelity.com/ftgw/rps/RtlCust/CreatePIN/Init.
163 // Instead, we match only words beginning with "month".
164 const char kExpirationMonthRe[] =
165     "expir|exp.*mo|exp.*date|ccmonth|cardmonth"
166     "|gueltig|gültig|monat"  // de-DE
167     "|fecha"  // es
168     "|date.*exp"  // fr-FR
169     "|scadenza"  // it-IT
170     "|有効期限"  // ja-JP
171     "|validade"  // pt-BR, pt-PT
172     "|Срок действия карты"  // ru
173     "|月";  // zh-CN
174 const char kExpirationYearRe[] =
175     "exp|^/|year"
176     "|ablaufdatum|gueltig|gültig|yahr"  // de-DE
177     "|fecha"  // es
178     "|scadenza"  // it-IT
179     "|有効期限"  // ja-JP
180     "|validade"  // pt-BR, pt-PT
181     "|Срок действия карты"  // ru
182     "|年|有效期";  // zh-CN
183
184 // This regex is a little bit nasty, but it is simply requiring exactly two
185 // adjacent y's.
186 const char kExpirationDate2DigitYearRe[] =
187     "exp.*date.*[^y]yy([^y]|$)";
188 const char kExpirationDateRe[] =
189     "expir|exp.*date"
190     "|gueltig|gültig"  // de-DE
191     "|fecha"  // es
192     "|date.*exp"  // fr-FR
193     "|scadenza"  // it-IT
194     "|有効期限"  // ja-JP
195     "|validade"  // pt-BR, pt-PT
196     "|Срок действия карты";  // ru
197 const char kCardIgnoredRe[] =
198     "^card";
199 const char kGiftCardRe[] =
200     "gift.?card";
201
202
203 /////////////////////////////////////////////////////////////////////////////
204 // email_field.cc
205 /////////////////////////////////////////////////////////////////////////////
206 const char kEmailRe[] =
207     "e.?mail"
208     "|courriel"  // fr
209     "|メールアドレス"  // ja-JP
210     "|Электронной.?Почты"  // ru
211     "|邮件|邮箱"  // zh-CN
212     "|電郵地址"  // zh-TW
213     "|(이메일|전자.?우편|[Ee]-?mail)(.?주소)?";  // ko-KR
214
215
216 /////////////////////////////////////////////////////////////////////////////
217 // name_field.cc
218 /////////////////////////////////////////////////////////////////////////////
219 const char kNameIgnoredRe[] =
220     "user.?name|user.?id|nickname|maiden name|title|prefix|suffix"
221     "|vollständiger.?name"  // de-DE
222     "|用户名"  // zh-CN
223     "|(사용자.?)?아이디|사용자.?ID";  // ko-KR
224 const char kNameRe[] =
225     "^name|full.?name|your.?name|customer.?name|firstandlastname|bill.?name"
226         "|ship.?name"
227     "|nombre.*y.*apellidos"  // es
228     "|^nom"  // fr-FR
229     "|お名前|氏名"  // ja-JP
230     "|^nome"  // pt-BR, pt-PT
231     "|姓名"  // zh-CN
232     "|성명";  // ko-KR
233 const char kNameSpecificRe[] =
234     "^name"
235     "|^nom"  // fr-FR
236     "|^nome";  // pt-BR, pt-PT
237 const char kFirstNameRe[] =
238     "first.*name|initials|fname|first$"
239     "|vorname"  // de-DE
240     "|nombre"  // es
241     "|forename|prénom|prenom"  // fr-FR
242     "|名"  // ja-JP
243     "|nome"  // pt-BR, pt-PT
244     "|Имя"  // ru
245     "|이름";  // ko-KR
246 const char kMiddleInitialRe[] = "middle.*initial|m\\.i\\.|mi$|\\bmi\\b";
247 const char kMiddleNameRe[] =
248     "middle.*name|mname|middle$"
249     "|apellido.?materno|lastlastname";  // es
250 const char kLastNameRe[] =
251     "last.*name|lname|surname|last$|secondname"
252     "|nachname"  // de-DE
253     "|apellido"  // es
254     "|famille|^nom"  // fr-FR
255     "|cognome"  // it-IT
256     "|姓"  // ja-JP
257     "|morada|apelidos|surename|sobrenome"  // pt-BR, pt-PT
258     "|Фамилия"  // ru
259     "|성[^명]?";  // ko-KR
260
261 /////////////////////////////////////////////////////////////////////////////
262 // phone_field.cc
263 /////////////////////////////////////////////////////////////////////////////
264 const char kPhoneRe[] =
265     "phone|mobile"
266     "|telefonnummer"  // de-DE
267     "|telefono|teléfono"  // es
268     "|telfixe"  // fr-FR
269     "|電話"  // ja-JP
270     "|telefone|telemovel"  // pt-BR, pt-PT
271     "|телефон"  // ru
272     "|电话"  // zh-CN
273     "|(전화|핸드폰|휴대폰|휴대전화)(.?번호)?";  // ko-KR
274 const char kCountryCodeRe[] =
275     "country.*code|ccode|_cc";
276 const char kAreaCodeNotextRe[] =
277     "^\\($";
278 const char kAreaCodeRe[] =
279     "area.*code|acode|area"
280     "|지역.?번호";  // ko-KR
281 const char kPhonePrefixSeparatorRe[] =
282     "^-$|^\\)$";
283 const char kPhoneSuffixSeparatorRe[] =
284     "^-$";
285 const char kPhonePrefixRe[] =
286     "prefix|exchange"
287     "|preselection"  // fr-FR
288     "|ddd";  // pt-BR, pt-PT
289 const char kPhoneSuffixRe[] =
290     "suffix";
291 const char kPhoneExtensionRe[] =
292     "\\bext|ext\\b|extension"
293     "|ramal";  // pt-BR, pt-PT
294
295 }  // namespace autofill