• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.url (URL字符串解析)
2
3> **说明:**
4>
5> 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
6
7## 导入模块
8
9```
10import Url from '@ohos.url'
11```
12## URLParams<sup>9+</sup>
13
14### constructor<sup>9+</sup>
15
16constructor(init?: string[][] | Record&lt;string, string&gt; | string | URLParams)
17
18URLParams的构造函数。
19
20**系统能力:** SystemCapability.Utils.Lang
21
22**参数:**
23
24| 参数名 | 类型 | 必填 | 说明 |
25| -------- | -------- | -------- | -------- |
26| init | string[][] \| Record&lt;string, string&gt; \| string \| URLParams | 否 | 入参对象。<br/>- string[][]:字符串二维数组<br/>- Record&lt;string, string&gt;:对象列表<br/>- string:字符串<br/>- URLParams:对象<br/>- 默认值:null。 |
27
28**示例:**
29
30```ts
31let objectParams = new Url.URLParams([ ['user1', 'abc1'], ['query2', 'first2'], ['query3', 'second3'] ]);
32let objectParams1 = new Url.URLParams({"fod" : '1' , "bard" : '2'});
33let objectParams2 = new Url.URLParams('?fod=1&bard=2');
34let urlObject = Url.URL.parseURL('https://developer.mozilla.org/?fod=1&bard=2');
35let params = new Url.URLParams(urlObject.search);
36```
37
38
39### append<sup>9+</sup>
40
41append(name: string, value: string): void
42
43将新的键值对插入到查询字符串。
44
45**系统能力:** SystemCapability.Utils.Lang
46
47**参数:**
48
49| 参数名 | 类型 | 必填 | 说明 |
50| -------- | -------- | -------- | -------- |
51| name | string | 是 | 需要插入搜索参数的键名。 |
52| value | string | 是 | 需要插入搜索参数的值。 |
53
54**示例:**
55
56```ts
57let urlObject = Url.URL.parseURL('https://developer.exampleUrl/?fod=1&bard=2');
58let paramsObject = new Url.URLParams(urlObject.search.slice(1));
59paramsObject.append('fod', '3');
60```
61
62
63### delete<sup>9+</sup>
64
65delete(name: string): void
66
67删除指定名称的键值对。
68
69**系统能力:** SystemCapability.Utils.Lang
70
71**参数:**
72
73| 参数名 | 类型 | 必填 | 说明 |
74| -------- | -------- | -------- | -------- |
75| name | string | 是 | 需要删除的键值名称。 |
76
77**示例:**
78
79```ts
80let urlObject = Url.URL.parseURL('https://developer.exampleUrl/?fod=1&bard=2');
81let paramsObject = new Url.URLParams(urlObject.search.slice(1));
82paramsObject.delete('fod');
83```
84
85
86### getAll<sup>9+</sup>
87
88getAll(name: string): string[]
89
90获取指定名称的所有键对应值的集合。
91
92**系统能力:** SystemCapability.Utils.Lang
93
94**参数:**
95
96| 参数名 | 类型 | 必填 | 说明 |
97| -------- | -------- | -------- | -------- |
98| name | string | 是 | 指定的键值名称。 |
99
100**返回值:**
101
102| 类型 | 说明 |
103| -------- | -------- |
104| string[] | 返回指定名称的所有键对应值的集合。 |
105
106**示例:**
107
108```ts
109let urlObject = Url.URL.parseURL('https://developer.exampleUrl/?fod=1&bard=2');
110let params = new Url.URLParams(urlObject.search.slice(1));
111params.append('fod', '3'); // Add a second value for the fod parameter.
112console.log(params.getAll('fod').toString()) // Output ["1","3"].
113```
114
115
116### entries<sup>9+</sup>
117
118entries(): IterableIterator<[string, string]>
119
120返回一个ES6的迭代器,迭代器的每一项都是一个 JavaScript Array。Array的第一项是name,Array的第二项是value。
121
122**系统能力:** SystemCapability.Utils.Lang
123
124**返回值:**
125
126| 类型 | 说明 |
127| -------- | -------- |
128| IterableIterator&lt;[string, string]&gt; | 返回一个ES6的迭代器。 |
129
130**示例:**
131
132```ts
133let searchParamsObject = new Url.URLParams("keyName1=valueName1&keyName2=valueName2");
134let pair:Iterable<Object[]> = searchParamsObject.entries();
135let arrayValue = Array.from(pair);
136for (let pair of arrayValue) { // Show keyName/valueName pairs
137  console.log(pair[0]+ ', '+ pair[1]);
138}
139```
140
141
142### forEach<sup>9+</sup>
143
144forEach(callbackFn: (value: string, key: string, searchParams: this) => void, thisArg?: Object): void
145
146通过回调函数来遍历URLSearchParams实例对象上的键值对。
147
148**系统能力:** SystemCapability.Utils.Lang
149
150**参数:**
151
152| 参数名 | 类型 | 必填 | 说明 |
153| -------- | -------- | -------- | -------- |
154| callbackFn | function | 是 | 回调函数。 |
155| thisArg | Object | 否 | callbackFn被调用时用作this值,默认值是本对象。 |
156
157**表1** callbackFn的参数说明
158
159| 参数名 | 类型 | 必填 | 说明 |
160| -------- | -------- | -------- | -------- |
161| value | string | 是 | 当前遍历到的键值。 |
162| key | string | 是 | 当前遍历到的键名。 |
163| searchParams | Object | 是 | 当前调用forEach方法的实例对象。 |
164
165**示例:**
166
167```ts
168const myURLObject = Url.URL.parseURL('https://developer.exampleUrl/?fod=1&bard=2');
169myURLObject.params.forEach((value, name, searchParams) => {
170    console.log(name, value, myURLObject.params === searchParams);
171});
172```
173
174
175### get<sup>9+</sup>
176
177get(name: string): string | null
178
179获取指定名称对应的第一个值。
180
181**系统能力:** SystemCapability.Utils.Lang
182
183**参数:**
184
185| 参数名 | 类型 | 必填 | 说明 |
186| -------- | -------- | -------- | -------- |
187| name | string | 是 | 指定键值对的名称。 |
188
189**返回值:**
190
191| 类型 | 说明 |
192| -------- | -------- |
193| string | 返回第一个值。 |
194| null | 如果没找到,返回 null。 |
195
196**示例:**
197
198```ts
199let paramsObject = new Url.URLParams('name=Jonathan&age=18');
200let name = paramsObject.get("name"); // is the string "Jonathan"
201let age = paramsObject.get("age"); // is the string "18"
202```
203
204
205### has<sup>9+</sup>
206
207has(name: string): boolean
208
209判断一个指定的键名对应的值是否存在。
210
211**系统能力:** SystemCapability.Utils.Lang
212
213**参数:**
214
215| 参数名 | 类型 | 必填 | 说明 |
216| -------- | -------- | -------- | -------- |
217| name | string | 是 | 要查找的参数的键名。 |
218
219**返回值:**
220
221| 类型 | 说明 |
222| -------- | -------- |
223| boolean | 是否存在相对应的key值,存在返回true,否则返回false。 |
224
225**示例:**
226
227```ts
228let urlObject = Url.URL.parseURL('https://developer.exampleUrl/?fod=1&bard=2');
229let paramsObject = new Url.URLParams(urlObject.search.slice(1));
230let result = paramsObject.has('bard');
231```
232
233
234### set<sup>9+</sup>
235
236set(name: string, value: string): void
237
238将与name关联的URLSearchParams对象中的值设置为value。如果存在名称为name的键值对,请将第一个键值对的值设置为value并删除所有其他值。如果不是,则将键值对附加到查询字符串。
239
240**系统能力:** SystemCapability.Utils.Lang
241
242**参数:**
243
244| 参数名 | 类型 | 必填 | 说明 |
245| -------- | -------- | -------- | -------- |
246| name | string | 是 | 将要设置的参数的键值名。 |
247| value | string | 是 | 所要设置的参数值。 |
248
249**示例:**
250
251```ts
252let urlObject = Url.URL.parseURL('https://developer.exampleUrl/?fod=1&bard=2');
253let paramsObject = new Url.URLParams(urlObject.search.slice(1));
254paramsObject.set('baz', '3'); // Add a third parameter.
255```
256
257
258### sort<sup>9+</sup>
259
260sort(): void
261
262对包含在此对象中的所有键值对进行排序,并返回undefined。排序顺序是根据键的Unicode代码点。该方法使用稳定的排序算法 (即,将保留具有相等键的键值对之间的相对顺序)。
263
264**系统能力:** SystemCapability.Utils.Lang
265
266**示例:**
267
268```ts
269let searchParamsObject = new Url.URLParams("c=3&a=9&b=4&d=2"); // Create a test URLSearchParams object
270searchParamsObject.sort(); // Sort the key/value pairs
271console.log(searchParamsObject.toString()); // Display the sorted query string // Output a=9&b=4&c=3&d=2
272```
273
274
275### keys<sup>9+</sup>
276
277keys(): IterableIterator&lt;string&gt;
278
279返回一个所有键值对的name的ES6迭代器。
280
281**系统能力:** SystemCapability.Utils.Lang
282
283**返回值:**
284
285| 类型 | 说明 |
286| -------- | -------- |
287| IterableIterator&lt;string&gt; | 返回一个所有键值对的name的ES6迭代器。 |
288
289**示例:**
290
291```ts
292let searchParamsObject = new Url.URLParams("key1=value1&key2=value2"); // Create a URLSearchParamsObject object for testing
293let keys = Array.from(searchParamsObject.keys());
294for (let key of keys) { // Output key-value pairs
295  console.log(key);
296}
297```
298
299
300### values<sup>9+</sup>
301
302values(): IterableIterator&lt;string&gt;
303
304返回一个所有键值对的value的ES6迭代器。
305
306**系统能力:** SystemCapability.Utils.Lang
307
308**返回值:**
309
310| 类型 | 说明 |
311| -------- | -------- |
312| IterableIterator&lt;string&gt; | 返回一个所有键值对的value的ES6迭代器。 |
313
314**示例:**
315
316```ts
317let searchParams = new Url.URLParams("key1=value1&key2=value2"); // Create a URLSearchParamsObject object for testing
318let values = Array.from(searchParams.values());
319for (let value of values) {
320  console.log(value);
321}
322```
323
324
325### [Symbol.iterator]<sup>9+</sup>
326
327[Symbol.iterator]\(): IterableIterator&lt;[string, string]&gt;
328
329返回一个ES6的迭代器,迭代器的每一项都是一个 JavaScript Array。Array的第一项是name,Array的第二项是value。
330
331**系统能力:** SystemCapability.Utils.Lang
332
333**返回值:**
334
335| 类型 | 说明 |
336| -------- | -------- |
337| IterableIterator&lt;[string, string]&gt; | 返回一个ES6的迭代器。 |
338
339**示例:**
340
341```ts
342const paramsObject = new Url.URLParams('fod=bay&edg=bap');
343let iter: Iterable<Object[]> = paramsObject[Symbol.iterator]();
344let pairs = Array.from(iter);
345for (let pair of pairs) {
346  console.log(pair[0] + ', ' + pair[1]);
347}
348```
349
350
351### tostring<sup>9+</sup>
352
353toString(): string
354
355返回序列化为字符串的搜索参数,必要时对字符进行百分比编码。
356
357**系统能力:** SystemCapability.Utils.Lang
358
359**返回值:**
360
361| 类型 | 说明 |
362| -------- | -------- |
363| string | 返回序列化为字符串的搜索参数,必要时对字符进行百分比编码。 |
364
365**示例:**
366
367```ts
368let url = Url.URL.parseURL('https://developer.exampleUrl/?fod=1&bard=2');
369let params = new Url.URLParams(url.search.slice(1));
370params.append('fod', '3');
371console.log(params.toString());
372```
373
374## URL
375
376### 属性
377
378**系统能力:** SystemCapability.Utils.Lang
379
380| 名称 | 类型 | 可读 | 可写 | 说明 |
381| -------- | -------- | -------- | -------- | -------- |
382| hash | string | 是 | 是 | 获取和设置URL的片段部分。 |
383| host | string | 是 | 是 | 获取和设置URL的主机部分。 |
384| hostname | string | 是 | 是 | 获取和设置URL的主机名部分,不带端口。 |
385| href | string | 是 | 是 | 获取和设置序列化的URL。 |
386| origin | string | 是 | 否 | 获取URL源的只读序列化。 |
387| password | string | 是 | 是 | 获取和设置URL的密码部分。 |
388| pathname | string | 是 | 是 | 获取和设置URL的路径部分。 |
389| port | string | 是 | 是 | 获取和设置URL的端口部分。 |
390| protocol | string | 是 | 是 | 获取和设置URL的协议部分。 |
391| search | string | 是 | 是 | 获取和设置URL的序列化查询部分。 |
392| searchParams<sup>(deprecated)</sup> | [URLSearchParams](#urlsearchparamsdeprecated) | 是 | 否 | 获取URLSearchParams表示URL查询参数的对象。<br/>- **说明:** 此属性从API version 7开始支持,从API version 9开始被废弃。建议使用params<sup>9+</sup>替代。 |
393| params<sup>9+</sup> | [URLParams](#urlparams9) | 是 | 否 | 获取URLParams表示URL查询参数的对象。 |
394| username | string | 是 | 是 | 获取和设置URL的用户名部分。 |
395
396### constructor<sup>(deprecated)</sup>
397
398> **说明:**
399>
400> 从API version 7开始支持,从API version 9开始废弃,建议使用[parseURL<sup>9+</sup>](#parseurl9)替代。
401
402constructor(url: string, base?: string | URL)
403
404URL的构造函数。
405
406**系统能力:** SystemCapability.Utils.Lang
407
408**参数:**
409
410| 参数名 | 类型 | 必填 | 说明 |
411| -------- | -------- | -------- | -------- |
412| url | string | 是 | 入参对象。 |
413| base | string \| URL | 否 | 入参字符串或者对象。<br/>- string:字符串<br/>- URL:字符串或对象<br/>- 默认值是空字符串或空对象。 |
414
415**示例:**
416
417```ts
418let mm = 'https://username:password@host:8080';
419let a = new Url.URL("/", mm); // Output 'https://username:password@host:8080/';
420let b = new Url.URL(mm); // Output 'https://username:password@host:8080/';
421new Url.URL('path/path1', b); // Output 'https://username:password@host:8080/path/path1';
422let c = new Url.URL('/path/path1', b);  // Output 'https://username:password@host:8080/path/path1';
423new Url.URL('/path/path1', c); // Output 'https://username:password@host:8080/path/path1';
424new Url.URL('/path/path1', a); // Output 'https://username:password@host:8080/path/path1';
425new Url.URL('/path/path1', "https://www.exampleUrl/fr-FR/toto"); // Output https://www.exampleUrl/path/path1
426new Url.URL('/path/path1', ''); // Raises a TypeError exception as '' is not a valid URL
427new Url.URL('/path/path1'); // Raises a TypeError exception as '/path/path1' is not a valid URL
428new Url.URL('https://www.example.com', ); // Output https://www.example.com/
429new Url.URL('https://www.example.com', b); // Output https://www.example.com/
430```
431
432### constructor<sup>9+</sup>
433
434constructor()
435
436URL的无参构造函数。parseURL调用后返回一个URL对象,不单独使用。
437
438**系统能力:** SystemCapability.Utils.Lang
439
440### parseURL<sup>9+</sup>
441
442static parseURL(url : string, base?: string | URL): URL
443
444URL静态成员函数。
445
446**系统能力:** SystemCapability.Utils.Lang
447
448**参数:**
449
450| 参数名 | 类型 | 必填 | 说明 |
451| -------- | -------- | -------- | -------- |
452| url | string | 是 | 入参对象。 |
453| base | string \| URL | 否 | 入参字符串或者对象。<br/>- string:字符串<br/>- URL:字符串或对象<br/>- 默认值是空字符串或空对象。 |
454
455**错误码:**
456
457以下错误码的详细介绍请参见[语言基础类库错误码](../errorcodes/errorcode-utils.md)。
458
459| 错误码ID | 错误信息 |
460| -------- | -------- |
461| 10200002 | Invalid url string. |
462
463
464**示例:**
465
466```ts
467let mm = 'https://username:password@host:8080';
468let url = Url.URL.parseURL(mm);
469let result = url.toString(); // Output 'https://username:password@host:8080/'
470```
471
472### tostring
473
474toString(): string
475
476将解析过后的URL转化为字符串。
477
478**系统能力:** SystemCapability.Utils.Lang
479
480**返回值:**
481
482| 类型 | 说明 |
483| -------- | -------- |
484| string | 用于返回网址的字符串序列化。 |
485
486**示例:**
487
488```ts
489const url = Url.URL.parseURL('https://username:password@host:8080/directory/file?query=pppppp#qwer=da');
490let result = url.toString();
491```
492
493### toJSON
494
495toJSON(): string
496
497将解析过后的URL转化为JSON字符串。
498
499**系统能力:** SystemCapability.Utils.Lang
500
501**返回值:**
502
503| 类型 | 说明 |
504| -------- | -------- |
505| string | 用于返回网址的字符串序列化。 |
506
507**示例:**
508```ts
509const url = Url.URL.parseURL('https://username:password@host:8080/directory/file?query=pppppp#qwer=da');
510let result = url.toJSON();
511```
512
513## URLSearchParams<sup>(deprecated)</sup>
514
515### constructor<sup>(deprecated)</sup>
516
517constructor(init?: string[][] | Record&lt;string, string&gt; | string | URLSearchParams)
518
519URLSearchParams的构造函数。
520
521> **说明:**
522>
523> 从API version 7开始支持,从API version 9开始废弃,建议使用[URLParams.constructor<sup>9+</sup>](#constructor9)替代。
524
525**系统能力:** SystemCapability.Utils.Lang
526
527**参数:**
528
529| 参数名 | 类型 | 必填 | 说明 |
530| -------- | -------- | -------- | -------- |
531| init | string[][] \| Record&lt;string, string&gt; \| string \| URLSearchParams | 否 | 入参对象。<br/>- string[][]:字符串二维数组<br/>- Record&lt;string, string&gt;:对象列表<br/>- string:字符串<br/>- URLSearchParams:对象<br/>- 默认值:null。 |
532
533**示例:**
534
535```ts
536let objectParams = new Url.URLSearchParams([ ['user1', 'abc1'], ['query2', 'first2'], ['query3', 'second3'] ]);
537let objectParams1 = new Url.URLSearchParams({"fod" : '1' , "bard" : '2'});
538let objectParams2 = new Url.URLSearchParams('?fod=1&bard=2');
539let urlObject = new Url.URL('https://developer.mozilla.org/?fod=1&bard=2');
540let params = new Url.URLSearchParams(urlObject.search);
541```
542
543### append<sup>(deprecated)</sup>
544
545append(name: string, value: string): void
546
547将新的键值对插入到查询字符串。
548
549> **说明:**
550>
551> 从API version 7开始支持,从API version 9开始废弃,建议使用[URLParams.append<sup>9+</sup>](#append9)替代。
552
553**系统能力:** SystemCapability.Utils.Lang
554
555**参数:**
556
557| 参数名 | 类型 | 必填 | 说明 |
558| -------- | -------- | -------- | -------- |
559| name | string | 是 | 需要插入搜索参数的键名。 |
560| value | string | 是 | 需要插入搜索参数的值。 |
561
562**示例:**
563
564```ts
565let urlObject = new Url.URL('https://developer.exampleUrl/?fod=1&bard=2');
566let paramsObject = new Url.URLSearchParams(urlObject.search.slice(1));
567paramsObject.append('fod', '3');
568```
569
570### delete<sup>(deprecated)</sup>
571
572delete(name: string): void
573
574删除指定名称的键值对。
575
576> **说明:**
577>
578> 从API version 7开始支持,从API version 9开始废弃,建议使用[URLParams.delete<sup>9+</sup>](#delete9)替代。
579
580**系统能力:** SystemCapability.Utils.Lang
581
582**参数:**
583
584| 参数名 | 类型 | 必填 | 说明 |
585| -------- | -------- | -------- | -------- |
586| name | string | 是 | 需要删除的键值名称。 |
587
588**示例:**
589
590```ts
591let urlObject = new Url.URL('https://developer.exampleUrl/?fod=1&bard=2');
592let paramsobject = new Url.URLSearchParams(urlObject.search.slice(1));
593paramsobject.delete('fod');
594```
595
596### getAll<sup>(deprecated)</sup>
597
598getAll(name: string): string[]
599
600获取指定名称的所有键值对。
601
602> **说明:**
603>
604> 从API version 7开始支持,从API version 9开始废弃,建议使用[URLParams.getAll<sup>9+</sup>](#getall9)替代。
605
606**系统能力:** SystemCapability.Utils.Lang
607
608**参数:**
609
610| 参数名 | 类型 | 必填 | 说明 |
611| -------- | -------- | -------- | -------- |
612| name | string | 是 | 指定的键值名称。 |
613
614**返回值:**
615
616| 类型 | 说明 |
617| -------- | -------- |
618| string[] | 返回指定名称的所有键值对。 |
619
620**示例:**
621
622```ts
623let urlObject = new Url.URL('https://developer.exampleUrl/?fod=1&bard=2');
624let params = new Url.URLSearchParams(urlObject.search.slice(1));
625params.append('fod', '3'); // Add a second value for the fod parameter.
626console.log(params.getAll('fod').toString()) // Output ["1","3"].
627```
628
629### entries<sup>(deprecated)</sup>
630
631entries(): IterableIterator<[string, string]>
632
633返回一个ES6的迭代器,迭代器的每一项都是一个 JavaScript Array。Array的第一项是name,Array的第二项是value。
634
635> **说明:**
636>
637> 从API version 7开始支持,从API version 9开始废弃,建议使用[URLParams.entries<sup>9+</sup>](#entries9)替代。
638
639**系统能力:** SystemCapability.Utils.Lang
640
641**返回值:**
642
643| 类型 | 说明 |
644| -------- | -------- |
645| IterableIterator&lt;[string, string]&gt; | 返回一个ES6的迭代器。 |
646
647**示例:**
648
649```ts
650let searchParamsObject = new Url.URLSearchParams("keyName1=valueName1&keyName2=valueName2");
651let iter: Iterable<Object[]> = searchParamsObject.entries();
652let pairs = Array.from(iter);
653for (let pair of pairs) { // Show keyName/valueName pairs
654  console.log(pair[0]+ ', '+ pair[1]);
655}
656```
657
658
659### forEach<sup>(deprecated)</sup>
660
661forEach(callbackFn: (value: string, key: string, searchParams: this) => void, thisArg?: Object): void
662
663通过回调函数来遍历URLSearchParams实例对象上的键值对。
664
665> **说明:**
666>
667> 从API version 7开始支持,从API version 9开始废弃,建议使用[URLParams.forEach<sup>9+</sup>](#foreach9)替代。
668
669**系统能力:** SystemCapability.Utils.Lang
670
671**参数:**
672
673| 参数名 | 类型 | 必填 | 说明 |
674| -------- | -------- | -------- | -------- |
675| callbackFn | function | 是 | 回调函数。 |
676| thisArg | Object | 否 | callbackFn被调用时用作this值,默认值是本对象。 |
677
678**表1** callbackFn的参数说明
679
680| 参数名 | 类型 | 必填 | 说明 |
681| -------- | -------- | -------- | -------- |
682| value | string | 是 | 当前遍历到的键值。 |
683| key | string | 是 | 当前遍历到的键名。 |
684| searchParams | Object | 是 | 当前调用forEach方法的实例对象。 |
685
686**示例:**
687
688```ts
689const myURLObject = new Url.URL('https://developer.exampleUrl/?fod=1&bard=2');
690myURLObject.searchParams.forEach((value, name, searchParams) => {
691    console.log(name, value, myURLObject.searchParams === searchParams);
692});
693```
694
695
696### get<sup>(deprecated)</sup>
697
698get(name: string): string | null
699
700获取指定名称对应的第一个值。
701
702> **说明:**
703>
704> 从API version 7开始支持,从API version 9开始废弃,建议使用[URLParams.get<sup>9+</sup>](#get9)替代。
705
706**系统能力:** SystemCapability.Utils.Lang
707
708**参数:**
709
710| 参数名 | 类型 | 必填 | 说明 |
711| -------- | -------- | -------- | -------- |
712| name | string | 是 | 指定键值对的名称。 |
713
714**返回值:**
715
716| 类型 | 说明 |
717| -------- | -------- |
718| string | 返回第一个值。 |
719| null | 如果没找到,返回 null。 |
720
721**示例:**
722
723```ts
724let paramsObject = new Url.URLSearchParams('name=Jonathan&age=18');
725let name = paramsObject.get("name"); // is the string "Jonathan"
726let age = paramsObject.get("age"); // is the string '18'
727```
728
729
730### has<sup>(deprecated)</sup>
731
732has(name: string): boolean
733
734判断一个指定的键名对应的值是否存在。
735
736> **说明:**
737>
738> 从API version 7开始支持,从API version 9开始废弃,建议使用[URLParams.has<sup>9+</sup>](#has9)替代。
739
740**系统能力:** SystemCapability.Utils.Lang
741
742**参数:**
743
744| 参数名 | 类型 | 必填 | 说明 |
745| -------- | -------- | -------- | -------- |
746| name | string | 是 | 要查找的参数的键名。 |
747
748**返回值:**
749
750| 类型 | 说明 |
751| -------- | -------- |
752| boolean | 是否存在相对应的key值,存在返回true,否则返回false。 |
753
754**示例:**
755
756```ts
757let urlObject = new Url.URL('https://developer.exampleUrl/?fod=1&bard=2');
758let paramsObject = new Url.URLSearchParams(urlObject.search.slice(1));
759paramsObject.has('bard') === true;
760```
761
762
763### set<sup>(deprecated)</sup>
764
765set(name: string, value: string): void
766
767将与name关联的URLSearchParams对象中的值设置为value。如果存在名称为name的键值对,请将第一个键值对的值设置为value并删除所有其他值。如果不是,则将键值对附加到查询字符串。
768
769> **说明:**
770>
771> 从API version 7开始支持,从API version 9开始废弃,建议使用[URLParams.set<sup>9+</sup>](#set9)替代。
772
773**系统能力:** SystemCapability.Utils.Lang
774
775**参数:**
776
777| 参数名 | 类型 | 必填 | 说明 |
778| -------- | -------- | -------- | -------- |
779| name | string | 是 | 将要设置的参数的键值名。 |
780| value | string | 是 | 所要设置的参数值。 |
781
782**示例:**
783
784```ts
785let urlObject = new Url.URL('https://developer.exampleUrl/?fod=1&bard=2');
786let paramsObject = new Url.URLSearchParams(urlObject.search.slice(1));
787paramsObject.set('baz', '3'); // Add a third parameter.
788```
789
790
791### sort<sup>(deprecated)</sup>
792
793sort(): void
794
795对包含在此对象中的所有键值对进行排序,并返回undefined。排序顺序是根据键的Unicode代码点。该方法使用稳定的排序算法 (即,将保留具有相等键的键值对之间的相对顺序)。
796
797> **说明:**
798>
799> 从API version 7开始支持,从API version 9开始废弃,建议使用[URLParams.sort<sup>9+</sup>](#sort9)替代。
800
801**系统能力:** SystemCapability.Utils.Lang
802
803**示例:**
804
805```ts
806let searchParamsObject = new Url.URLSearchParams("c=3&a=9&b=4&d=2"); // Create a test URLSearchParams object
807searchParamsObject.sort(); // Sort the key/value pairs
808console.log(searchParamsObject.toString()); // Display the sorted query string // Output a=9&b=4&c=3&d=2
809```
810
811
812### keys<sup>(deprecated)</sup>
813
814keys(): IterableIterator&lt;string&gt;
815
816返回一个所有键值对的name的ES6迭代器。
817
818> **说明:**
819>
820> 从API version 7开始支持,从API version 9开始废弃,建议使用[URLParams.keys<sup>9+</sup>](#keys9)替代。
821
822**系统能力:** SystemCapability.Utils.Lang
823
824**返回值:**
825
826| 类型 | 说明 |
827| -------- | -------- |
828| IterableIterator&lt;string&gt; | 返回一个所有键值对的name的ES6迭代器。 |
829
830**示例:**
831
832```ts
833let searchParamsObject = new Url.URLSearchParams("key1=value1&key2=value2"); // Create a URLSearchParamsObject object for testing
834let keys = Array.from(searchParamsObject.keys());
835for (let key of keys) { // Output key-value pairs
836  console.log(key);
837}
838```
839
840
841### values<sup>(deprecated)</sup>
842
843values(): IterableIterator&lt;string&gt;
844
845返回一个所有键值对的value的ES6迭代器。
846
847> **说明:**
848>
849> 从API version 7开始支持,从API version 9开始废弃,建议使用[URLParams.values<sup>9+</sup>](#values9)替代。
850
851**系统能力:** SystemCapability.Utils.Lang
852
853**返回值:**
854
855| 类型 | 说明 |
856| -------- | -------- |
857| IterableIterator&lt;string&gt; | 返回一个所有键值对的value的ES6迭代器。 |
858
859**示例:**
860
861```ts
862let searchParams = new Url.URLSearchParams("key1=value1&key2=value2"); // Create a URLSearchParamsObject object for testing
863let values = Array.from(searchParams.values());
864for (let value of values) {
865  console.log(value);
866}
867```
868
869
870### [Symbol.iterator]<sup>(deprecated)</sup>
871
872[Symbol.iterator]\(): IterableIterator&lt;[string, string]&gt;
873
874返回一个ES6的迭代器,迭代器的每一项都是一个 JavaScript Array。Array的第一项是name,Array的第二项是value。
875
876> **说明:**
877>
878> 从API version 7开始支持,从API version 9开始废弃,建议使用[URLParams.[Symbol.iterator]<sup>9+</sup>](#symboliterator9)替代。
879
880**系统能力:** SystemCapability.Utils.Lang
881
882**返回值:**
883
884| 类型 | 说明 |
885| -------- | -------- |
886| IterableIterator&lt;[string, string]&gt; | 返回一个ES6的迭代器。 |
887
888**示例:**
889
890```ts
891const paramsObject = new Url.URLSearchParams('fod=bay&edg=bap');
892let iter: Iterable<Object[]> = paramsObject[Symbol.iterator]();
893let pairs = Array.from(iter);
894for (let pair of pairs) {
895  console.log(pair[0] + ', ' + pair[1]);
896}
897```
898
899### tostring<sup>(deprecated)</sup>
900
901toString(): string
902
903返回序列化为字符串的搜索参数,必要时对字符进行百分比编码。
904
905> **说明:**
906>
907> 从API version 7开始支持,从API version 9开始废弃,建议使用[URLParams.tostring<sup>9+</sup>](#tostring9)替代。
908
909**系统能力:** SystemCapability.Utils.Lang
910
911**返回值:**
912
913| 类型 | 说明 |
914| -------- | -------- |
915| string | 返回序列化为字符串的搜索参数,必要时对字符进行百分比编码。 |
916
917**示例:**
918
919```ts
920let url = new Url.URL('https://developer.exampleUrl/?fod=1&bard=2');
921let params = new Url.URLSearchParams(url.search.slice(1));
922params.append('fod', '3');
923console.log(params.toString());
924```
925<!--no_check-->