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

URL字符串解析

icon-note.gif 说明:  本模块首批接口从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

参数:

参数名类型必填说明
initstring[][]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

参数:

参数名类型必填说明
namestring需要插入搜索参数的键名。
valuestring需要插入搜索参数的值。

示例:

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

参数:

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

示例:

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

参数:

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

返回值:

类型说明
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 pairsconsole.log(pair[0]+ ', '+ pair[1]);
}

forEach

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

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

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
callbackfnfunction回调函数。
thisArgObjectcallbackfn被调用时用作this值

表1 callbackfn的参数说明

参数名类型必填说明
valuestring当前遍历到的键值。
keystring当前遍历到的键名。
searchParamsObject当前调用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

参数:

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

返回值:

类型说明
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

参数:

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

返回值:

类型说明
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

参数:

参数名类型必填说明
namestring将要设置的参数的键值名。
valuestring所要设置的参数值。

示例:

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 pairsconsole.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

名称参数类型可读可写说明
hashstring获取和设置URL的片段部分。
hoststring获取和设置URL的主机部分。
hostnamestring获取和设置URL的主机名部分,不带端口。
hrefstring获取和设置序列化的URL。
originstring获取URL源的只读序列化。
passwordstring获取和设置URL的密码部分。
pathnamestring获取和设置URL的路径部分。
portstring获取和设置URL的端口部分。
protocolstring获取和设置URL的协议部分。
searchstring获取和设置URL的序列化查询部分。
searchParamsURLsearchParams获取URLSearchParams表示URL查询参数的对象。
usernamestring获取和设置URL的用户名部分。

constructor

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

URL的构造函数。

系统能力:  SystemCapability.Utils.Lang

参数:

参数名类型必填说明
urlstring入参对象。
basestringURL

示例:

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

返回值:

QQ截图20240705211022.png

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

示例:

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/43093.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/43093.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【K8s】专题六(5):Kubernetes 稳定性之重启策略、滚动更新策略

以下内容均来自个人笔记并重新梳理&#xff0c;如有错误欢迎指正&#xff01;如果对您有帮助&#xff0c;烦请点赞、关注、转发&#xff01;欢迎扫码关注个人公众号&#xff01; 目录 一、重启策略 1、基本介绍 2、资源清单&#xff08;示例&#xff09; 二、滚动更新策略 …

Vue框架引入

vue简介 1.1.vue是什么?Vue官网 英文官网: https://vuejs.org/中文官网: https://cn.vuejs.org/ vue是一套构建用户界面的渐进式javascript框架 构建用户界面:将我们手里拿到的数据通过某种办法变成用户可以看见的界面前端工程师的职责:就是在合适的时候发出合适的请求,然后…

展开说说:Android服务之bindService解析

前面两篇文章我们分别总结了Android四种Service的基本使用以及源码层面总结一下startService的执行过程&#xff0c;本篇继续从源码层面总结bindService的执行过程。 本文依然按着是什么&#xff1f;有什么&#xff1f;怎么用&#xff1f;啥原理&#xff1f;的步骤来分析。 b…

Splunk Enterprise 任意文件读取漏洞(CVE-2024-36991)

文章目录 前言漏洞描述影响版本漏洞复现POC批量检测-nuclei脚本 修复建议 前言 Splunk Enterprise 是一款强大的机器数据管理和分析平台&#xff0c;能够实时收集、索引、搜索、分析和可视化来自各种数据源的日志和数据&#xff0c;帮助企业提升运营效率、增强安全性和优化业务…

数据库作业3

DELETE FROM student WHERE grade IS NULL; 一、数据库操作部分 1. 向 student 表中添加一条新记录&#xff1a; INSERT INTO student (id, name, grade) VALUES (1, monkey, 98.5); 2. 向 student 表中添加多条新记录&#xff1a; INSERT INTO student (id, name, grade) V…

【MYSQL】如何解决 bin log 与 redo log 的一致性问题

该问题问的其实就是redo log 的两阶段提交 为什么说redo log 具有崩溃恢复的能力 MySQL Server 层拥有的 bin log 只能用于归档&#xff0c;不足以实现崩溃恢复&#xff08;crash-safe&#xff09;&#xff0c;需要借助 InnoDB 引擎的 redo log 才能拥有崩溃恢复的能力。所谓崩…

PHP的发展历程以及功能使用场景

PHP的发展历程 PHP的发展历程可以追溯到1994年&#xff0c;由丹麦计算机程序员拉斯穆斯勒多夫&#xff08;Rasmus Lerdorf&#xff09;出于个人网站统计访问者信息的需求而创建。以下是PHP发展历程中的几个重要里程碑&#xff1a; 初创阶段&#xff08;1994-1995年&#xff09…

二刷力扣——单调栈

739. 每日温度 单调栈应该从栈底到栈顶 是递减的。 找下一个更大的 &#xff0c;用递减单调栈&#xff0c;就可以确定在栈里面的每个比当前元素i小的元素&#xff0c;下一个更大的就是这个i&#xff0c;然后弹出并记录&#xff1b;然后当前元素i入栈&#xff0c;仍然满足递减…

数学基础 -- 三角学

三角学 三角学&#xff08;Trigonometry&#xff09;是数学的一个分支&#xff0c;主要研究三角形的边长与角度之间的关系。三角学在几何学、物理学、工程学等多个领域中有广泛的应用。以下是三角学的一些基本概念和公式&#xff1a; 基本概念 直角三角形&#xff1a;一个角…

Java进阶----继承

继承 一.继承概述 继承是可以通过定义新的类&#xff0c;在已有类的基础上扩展属性和功能的一种技术. 案例&#xff1a;优化 猫、狗JavaBean类的设计 狗类&#xff1a;Dog 属性&#xff1a;名字 name&#xff0c;年龄 age 方法&#xff1a;看家 watchHome()&#xff0c;Gett…

防抖和字节流

防抖&#xff08;Debouncing&#xff09;和字节流&#xff08;Byte Stream&#xff09;是两个不同的概念&#xff0c;分别在编程和数据传输领域中使用。 防抖&#xff08;Debouncing&#xff09; 防抖是一种在前端开发中常用的技术&#xff0c;用于控制事件处理函数的执行频率…

Android多开应用软件系统设计

设计一个支持Android多开应用的软件系统&#xff0c;主要涉及到以下几个关键技术点和设计考虑&#xff1a; 1. 虚拟化技术 容器技术&#xff1a;与传统的虚拟机不同&#xff0c;可以采用更轻量级的容器技术&#xff0c;为每个应用实例创建独立的运行环境。这包括分配独立的用…

Ubuntu配置sendmail client,用sendmail命令来发送邮件

参考文档 https://mailoutgoing.com/support/mailrelay/sendmail.html https://www.sendmail.org/~ca/email/auth.html https://docs.oracle.com/en/operating-systems/oracle-linux/6/admin/configure-sendmail.html 总结 1、ubuntu环境下&#xff0c;sendmail服务位于/etc/i…

HTTP 请求走私漏洞详解

超详细的HTTP请求走私漏洞教程&#xff0c;看完还不会你来找我。 1. 简介 HTTP请求走私漏洞&#xff08;HTTP Request Smuggling&#xff09;发生在前端服务器&#xff08;也称代理服务器&#xff0c;一般会进行身份验证或访问控制&#xff09;和后端服务器在解析HTTP请求时&…

上位机图像处理和嵌入式模块部署(mcu项目2:串口日志记录器)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 淘宝上面有一个商品蛮好玩的&#xff0c;那就是日志记录器。说是记录器&#xff0c;其实就是一个模块&#xff0c;这个模块的输入是一个ttl串口&am…

利用Python进行数据分析PDF下载经典数据分享推荐

本书由Python pandas项目创始人Wes McKinney亲笔撰写&#xff0c;详细介绍利用Python进行操作、处理、清洗和规整数据等方面的具体细节和基本要点。第2版针对Python 3.6进行全面修订和更新&#xff0c;涵盖新版的pandas、NumPy、IPython和Jupyter&#xff0c;并增加大量实际案例…

Docker Desktop如何换镜像源?

docker现在很多镜像源都出现了问题,导致无法拉取镜像,所以找到一个好的镜像源,尤为重要。 一、阿里镜像源 经过测试,目前,阿里云镜像加速地址还可以使用。如果没有阿里云账号,需要先注册一个账号。 地址:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors 二…

基于Java技术的B/S模式书籍学习平台

你好&#xff0c;我是专注于计算机科学领域的学姐码农小野。如果你对书籍学习平台开发感兴趣或有相关需求&#xff0c;欢迎私信联系我。 开发语言&#xff1a; Java 数据库&#xff1a; MySQL 技术&#xff1a; B/S模式、Java技术 工具&#xff1a; Eclipse、Navicat、Mave…

【Go】函数的使用

目录 函数返回多个值 init函数和import init函数 main函数 函数的参数 值传递 引用传递&#xff08;指针&#xff09; 函数返回多个值 用法如下&#xff1a; package mainimport ("fmt""strconv" )// 返回多个返回值&#xff0c;无参数名 func Mu…

相邻不同数字的标记

链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 来源&#xff1a;牛客网 时间限制&#xff1a;C/C 1秒&#xff0c;其他语言2秒 空间限制&#xff1a;C/C 262144K&#xff0c;其他语言524288K 64bit IO Format: %lld 题目描述 小红拿到了一个数组&#xff0c;每个数…