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<string, string> | string | URLSearchParams) 17 18URLParams的构造函数。 19 20**系统能力:** SystemCapability.Utils.Lang 21 22**参数:** 23 24| 参数名 | 类型 | 必填 | 说明 | 25| -------- | -------- | -------- | -------- | 26| init | string[][] \| Record<string, string> \| string \| URLSearchParams | 否 | 入参对象。<br/>- string[][]:字符串二维数组<br/>- Record<string, string>:对象列表<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<[string, string]> | 返回一个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<string> 276 277返回一个所有键值对的name的ES6迭代器。 278 279**系统能力:** SystemCapability.Utils.Lang 280 281**返回值:** 282 283| 类型 | 说明 | 284| -------- | -------- | 285| IterableIterator<string> | 返回一个所有键值对的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<string> 300 301返回一个所有键值对的value的ES6迭代器。 302 303**系统能力:** SystemCapability.Utils.Lang 304 305**返回值:** 306 307| 类型 | 说明 | 308| -------- | -------- | 309| IterableIterator<string> | 返回一个所有键值对的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<[string, string]> 324 325返回一个ES6的迭代器,迭代器的每一项都是一个 JavaScript Array。Array的第一项是name,Array的第二项是value。 326 327**系统能力:** SystemCapability.Utils.Lang 328 329**返回值:** 330 331| 类型 | 说明 | 332| -------- | -------- | 333| IterableIterator<[string, string]> | 返回一个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<string, string> | 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<string, string> \| string \| URLSearchParams | 否 | 入参对象。<br/>- string[][]:字符串二维数组<br/>- Record<string, string>:对象列表<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<[string, string]> | 返回一个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<string> 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<string> | 返回一个所有键值对的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<string> 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<string> | 返回一个所有键值对的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<[string, string]> 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<[string, string]> | 返回一个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-->