鸿蒙语言基础类库:【@ohos.url (URL字符串解析)】

URL字符串解析

说明: 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。开发前请熟悉鸿蒙开发指导文档gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。

导入模块

复制代码
import Url from '@ohos.url' 

URLSearchParams

constructor

constructor(init?: string\[\]\[\] | Record<string, string> | string | URLSearchParams)

URLSearchParams的构造函数。

系统能力: SystemCapability.Utils.Lang

参数:

参数名 类型 必填 说明
init string\[\]\[\] Record<string, string> string

示例:

复制代码
var objectParams = new Url.URLSearchParams([ ['user1', 'abc1'], ['query2', 'first2'], ['query3', 'second3'] ]);
var objectParams1 = new Url.URLSearchParams({"fod" : 1 , "bard" : 2});
var objectParams2 = new Url.URLSearchParams('?fod=1&bard=2');
var urlObject = new Url.URL('https://developer.mozilla.org/?fod=1&bard=2');
var params = new Url.URLSearchParams(urlObject.search);

append

append(name: string, value: string): void

将新的键值对插入到查询字符串。

系统能力: SystemCapability.Utils.Lang

参数:

参数名 类型 必填 说明
name string 需要插入搜索参数的键名。
value string 需要插入搜索参数的值。

示例:

复制代码
let urlObject = new Url.URL('https://developer.exampleUrl/?fod=1&bard=2');
let paramsObject = new Url.URLSearchParams(urlObject.search.slice(1));
paramsObject.append('fod', 3);

delete

delete(name: string): void

删除指定名称的键值对。

系统能力: SystemCapability.Utils.Lang

参数:

参数名 类型 必填 说明
name string 需要删除的键值名称。

示例:

复制代码
let urlObject = new Url.URL('https://developer.exampleUrl/?fod=1&bard=2');
let paramsobject = new Url.URLSearchParams(urlObject.search.slice(1));
paramsobject.delete('fod');

getAll

getAll(name: string): string\[\]

获取指定名称的所有键值对。

系统能力: SystemCapability.Utils.Lang

参数:

参数名 类型 必填 说明
name string 指定的键值名称。

返回值:

类型 说明
string\[\] 返回指定名称的所有键值对。

示例:

复制代码
let urlObject = new Url.URL('https://developer.exampleUrl/?fod=1&bard=2'); 
let paramsObject = new Url.URLSearchParams(urlObject.search.slice(1)); 
paramsObject.append('fod', 3); // Add a second value for the fod parameter.
console.log(params.getAll('fod')) // Output ["1","3"].

entries

entries(): IterableIterator<string, string>

返回一个ES6的迭代器,迭代器的每一项都是一个 JavaScript Array。Array的第一项是name,Array的第二项是value。

系统能力: SystemCapability.Utils.Lang

返回值:

类型 说明
IterableIterator<string, string> 返回一个ES6的迭代器。

示例:

复制代码
var searchParamsObject = new Url.URLSearchParams("keyName1=valueName1&keyName2=valueName2"); 
for (var pair of searchParamsObject .entries()) { // Show keyName/valueName pairs
    console.log(pair[0]+ ', '+ pair[1]);
}

forEach

forEach(callbackfn: (value: string, key: string, searchParams: this) => void, thisArg?: Object): void

通过回调函数来遍历URLSearchParams实例对象上的键值对。

系统能力: SystemCapability.Utils.Lang

参数:

参数名 类型 必填 说明
callbackfn function 回调函数。
thisArg Object callbackfn被调用时用作this值

表1 callbackfn的参数说明

参数名 类型 必填 说明
value string 当前遍历到的键值。
key string 当前遍历到的键名。
searchParams Object 当前调用forEach方法的实例对象。

示例:

复制代码
const myURLObject = new Url.URL('https://developer.exampleUrl/?fod=1&bard=2'); 
myURLObject.searchParams.forEach((value, name, searchParams) => {  
    console.log(name, value, myURLObject.searchParams === searchParams);
});

get

get(name: string): string | null

获取指定名称对应的第一个值。

系统能力: SystemCapability.Utils.Lang

参数:

参数名 类型 必填 说明
name string 指定键值对的名称。

返回值:

类型 说明
string 返回第一个值。
null 如果没找到,返回 null。

示例:

复制代码
var paramsOject = new Url.URLSearchParams(document.location.search.substring(1)); 
var name = paramsOject.get("name"); // is the string "Jonathan" 
var age = parseInt(paramsOject.get("age"), 10); // is the number 18
var address = paramsOject.get("address"); // null

has

has(name: string): boolean

判断一个指定的键名对应的值是否存在。

系统能力: SystemCapability.Utils.Lang

参数:

参数名 类型 必填 说明
name string 要查找的参数的键名。

返回值:

类型 说明
boolean 是否存在相对应的key值,存在返回true,否则返回false。

示例:

复制代码
let urlObject = new Url.URL('https://developer.exampleUrl/?fod=1&bard=2');
let paramsObject = new Url.URLSearchParams(urlObject.search.slice(1)); 
paramsObject.has('bard') === true;

set

set(name: string, value: string): void

将与name关联的URLSearchParams对象中的值设置为value。如果存在名称为name的键值对,请将第一个键值对的值设置为value并删除所有其他值。如果不是,则将键值对附加到查询字符串。

系统能力: SystemCapability.Utils.Lang

参数:

参数名 类型 必填 说明
name string 将要设置的参数的键值名。
value string 所要设置的参数值。

示例:

复制代码
let urlObject = new Url.URL('https://developer.exampleUrl/?fod=1&bard=2');
let paramsObject = new Url.URLSearchParams(urlObject.search.slice(1));
paramsObject.set('baz', 3); // Add a third parameter.

sort

sort(): void

对包含在此对象中的所有键值对进行排序,并返回undefined。排序顺序是根据键的Unicode代码点。该方法使用稳定的排序算法 (即,将保留具有相等键的键值对之间的相对顺序)。

系统能力: SystemCapability.Utils.Lang

示例:

复制代码
var searchParamsObject = new Url.URLSearchParams("c=3&a=9&b=4&d=2"); // Create a test URLSearchParams object
searchParamsObject.sort(); // Sort the key/value pairs
console.log(searchParamsObject.toString()); // Display the sorted query string // Output a=9&b=2&c=3&d=4

keys

keys(): IterableIterator

返回一个所有键值对的name的ES6迭代器。

系统能力: SystemCapability.Utils.Lang

返回值:

类型 说明
IterableIterator 返回一个所有键值对的name的ES6迭代器。

示例:

复制代码
var searchParamsObject = new Url.URLSearchParams("key1=value1&key2=value2"); // Create a URLSearchParamsObject object for testing
for (var key of searchParamsObject .keys()) { // Output key-value pairs
    console.log(key);
}

values

values(): IterableIterator

返回一个所有键值对的value的ES6迭代器。

系统能力: SystemCapability.Utils.Lang

返回值:

类型 说明
IterableIterator 返回一个所有键值对的value的ES6迭代器。

示例:

复制代码
var searchParams = new Url.URLSearchParams("key1=value1&key2=value2"); // Create a URLSearchParamsObject object for testing
for (var value of searchParams.values()) { 
    console.log(value);
}

Symbol.iterator

Symbol.iterator: IterableIterator<string, string>

返回一个ES6的迭代器,迭代器的每一项都是一个 JavaScript Array。Array的第一项是name,Array的第二项是value。

系统能力: SystemCapability.Utils.Lang

返回值:

类型 说明
IterableIterator<string, string> 返回一个ES6的迭代器。

示例:

复制代码
const paramsObject = new Url.URLSearchParams('fod=bay&edg=bap');
for (const [name, value] of paramsObject) { 
    console.log(name, value); 
} 

tostring

toString(): string

返回序列化为字符串的搜索参数,必要时对字符进行百分比编码。

系统能力: SystemCapability.Utils.Lang

返回值:

类型 说明
string 返回序列化为字符串的搜索参数,必要时对字符进行百分比编码。

示例:

复制代码
let url = new Url.URL('https://developer.exampleUrl/?fod=1&bard=2');
let params = new Url.URLSearchParams(url.search.slice(1)); 
params.append('fod', 3);
console.log(params.toString());

URL

属性

系统能力: 以下各项对应的系统能力均为SystemCapability.Utils.Lang

名称 参数类型 可读 可写 说明
hash string 获取和设置URL的片段部分。
host string 获取和设置URL的主机部分。
hostname string 获取和设置URL的主机名部分,不带端口。
href string 获取和设置序列化的URL。
origin string 获取URL源的只读序列化。
password string 获取和设置URL的密码部分。
pathname string 获取和设置URL的路径部分。
port string 获取和设置URL的端口部分。
protocol string 获取和设置URL的协议部分。
search string 获取和设置URL的序列化查询部分。
searchParams URLsearchParams 获取URLSearchParams表示URL查询参数的对象。
username string 获取和设置URL的用户名部分。

constructor

constructor(url: string, base?: string | URL)

URL的构造函数。

系统能力: SystemCapability.Utils.Lang

参数:

参数名 类型 必填 说明
url string 入参对象。
base string URL

示例:

复制代码
var mm = 'http://username:password@host:8080';
var a = new Url.URL("/", mm); // Output 'http://username:password@host:8080/';
var b = new Url.URL(mm); // Output 'http://username:password@host:8080/';
new Url.URL('path/path1', b); // Output 'http://username:password@host:8080/path/path1';
var c = new Url.URL('/path/path1', b);  // Output 'http://username:password@host:8080/path/path1'; 
new Url.URL('/path/path1', c); // Output 'http://username:password@host:8080/path/path1';
new Url.URL('/path/path1', a); // Output 'http://username:password@host:8080/path/path1';
new Url.URL('/path/path1', "https://www.exampleUrl/fr-FR/toto"); // Output https://www.exampleUrl/path/path1
new Url.URL('/path/path1', ''); // Raises a TypeError exception as '' is not a valid URL
new Url.URL('/path/path1'); // Raises a TypeError exception as '/path/path1' is not a valid URL
new Url.URL('http://www.shanxi.com', ); // Output http://www.shanxi.com/
new Url.URL('http://www.shanxi.com', b); // Output http://www.shanxi.com/

tostring

toString(): string

将解析过后的URL转化为字符串。

系统能力: SystemCapability.Utils.Lang

返回值:

类型 说明
string 用于返回网址的字符串序列化。

示例:

复制代码
const url = new Url.URL('http://username:password@host:8080/directory/file?query=pppppp#qwer=da');
url.toString()

toJSON

toJSON(): string

将解析过后的URL转化为JSON字符串。

系统能力: SystemCapability.Utils.Lang

返回值:

类型 说明 HarmonyOS与OpenHarmony鸿蒙文档籽料:mau123789是v直接拿
string 用于返回网址的字符串序列化。

示例:

复制代码
const url = new Url.URL('http://username:password@host:8080/directory/file?query=pppppp#qwer=da');
相关推荐
花椒技术5 小时前
复杂直播业务做 RN 跨端,我们最后保留了哪些 Native 边界
react native·react.js·harmonyos
洛宇5 小时前
一个口语 skill,灵感居然来自2021年的那个夏天
人工智能·程序员·github
Hilaku7 小时前
多标签页并发请求导致 Token 刷新失败?只有 15行代码就能解决 !
前端·javascript·程序员
不羁的木木7 小时前
《HarmonyOS技术精讲》四:驱动开发入门 ── 标准外设与非标USB串口
驱动开发·华为·harmonyos
不羁的木木8 小时前
《HarmonyOS底部页签-沉浸光感组件实战》高级定制:图标出血与分割线
华为·harmonyos
SamDeepThinking9 小时前
一个业务场景只需要一个ThreadLocal实例
java·后端·程序员
Goway_Hui9 小时前
【鸿蒙原生应用开发--ArkUI--015】File-manager 文件管理器应用开发教程
华为·harmonyos
代码简单说11 小时前
Codex中文官方文档地址和使用教程:国内开发者快速上手AI编程助手
程序员·ai编程
程序员鱼皮11 小时前
我用 GitHub 仓库养 AI 龙虾,自动开发上线项目!保姆级教程
前端·人工智能·ai·程序员·github·编程·ai编程
不羁的木木12 小时前
《HarmonyOS底部页签-沉浸光感组件实战》基础入门:认识HdsTabs容器与核心配置
华为·harmonyos