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