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