0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

鴻蒙語言基礎(chǔ)類庫(kù):ohos.url URL字符串解析

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-07-08 22:31 ? 次閱讀

URL字符串解析

icon-note.gif說明: 本模塊首批接口從API version 7開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨(dú)標(biāo)記接口的起始版本。 開發(fā)前請(qǐng)熟悉鴻蒙開發(fā)指導(dǎo)文檔 :[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]

導(dǎo)入模塊

import Url from '@ohos.url'

URLSearchParams

constructor

constructor(init?: string[][] | Record | string | URLSearchParams)

URLSearchParams的構(gòu)造函數(shù)。

系統(tǒng)能力: SystemCapability.Utils.Lang

參數(shù)

參數(shù)名類型必填說明
initstring[][]Recordstring

示例:

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

將新的鍵值對(duì)插入到查詢字符串。

系統(tǒng)能力: SystemCapability.Utils.Lang

參數(shù):

參數(shù)名類型必填說明
namestring需要插入搜索參數(shù)的鍵名。
valuestring需要插入搜索參數(shù)的值。

示例:

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

刪除指定名稱的鍵值對(duì)。

系統(tǒng)能力: SystemCapability.Utils.Lang

參數(shù):

參數(shù)名類型必填說明
namestring需要?jiǎng)h除的鍵值名稱。

示例:

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[]

獲取指定名稱的所有鍵值對(duì)。

系統(tǒng)能力: SystemCapability.Utils.Lang

參數(shù):

參數(shù)名類型必填說明
namestring指定的鍵值名稱。

返回值:

類型說明
string[]返回指定名稱的所有鍵值對(duì)。

示例:

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]>

返回一個(gè)ES6的迭代器,迭代器的每一項(xiàng)都是一個(gè) JavaScript Array。Array的第一項(xiàng)是name,Array的第二項(xiàng)是value。

系統(tǒng)能力: SystemCapability.Utils.Lang

返回值:

類型說明
IterableIterator<[string, string]>返回一個(gè)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

通過回調(diào)函數(shù)來遍歷URLSearchParams實(shí)例對(duì)象上的鍵值對(duì)。

系統(tǒng)能力: SystemCapability.Utils.Lang

參數(shù):

參數(shù)名類型必填說明
callbackfnfunction回調(diào)函數(shù)。
thisArgObjectcallbackfn被調(diào)用時(shí)用作this值

表1 callbackfn的參數(shù)說明

參數(shù)名類型必填說明
valuestring當(dāng)前遍歷到的鍵值。
keystring當(dāng)前遍歷到的鍵名。
searchParamsObject當(dāng)前調(diào)用forEach方法的實(shí)例對(duì)象。

示例:

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

獲取指定名稱對(duì)應(yīng)的第一個(gè)值。

系統(tǒng)能力: SystemCapability.Utils.Lang

參數(shù):

參數(shù)名類型必填說明
namestring指定鍵值對(duì)的名稱。

返回值:

類型說明
string返回第一個(gè)值。
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

判斷一個(gè)指定的鍵名對(duì)應(yīng)的值是否存在。

系統(tǒng)能力: SystemCapability.Utils.Lang

參數(shù):

參數(shù)名類型必填說明
namestring要查找的參數(shù)的鍵名。

返回值:

類型說明
boolean是否存在相對(duì)應(yīng)的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關(guān)聯(lián)的URLSearchParams對(duì)象中的值設(shè)置為value。如果存在名稱為name的鍵值對(duì),請(qǐng)將第一個(gè)鍵值對(duì)的值設(shè)置為value并刪除所有其他值。如果不是,則將鍵值對(duì)附加到查詢字符串。

系統(tǒng)能力: SystemCapability.Utils.Lang

參數(shù):

參數(shù)名類型必填說明
namestring將要設(shè)置的參數(shù)的鍵值名。
valuestring所要設(shè)置的參數(shù)值。

示例:

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

對(duì)包含在此對(duì)象中的所有鍵值對(duì)進(jìn)行排序,并返回undefined。排序順序是根據(jù)鍵的Unicode代碼點(diǎn)。該方法使用穩(wěn)定的排序算法 (即,將保留具有相等鍵的鍵值對(duì)之間的相對(duì)順序)。

系統(tǒng)能力: 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

返回一個(gè)所有鍵值對(duì)的name的ES6迭代器。

系統(tǒng)能力: SystemCapability.Utils.Lang

返回值:

類型說明
IterableIterator返回一個(gè)所有鍵值對(duì)的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

返回一個(gè)所有鍵值對(duì)的value的ES6迭代器。

系統(tǒng)能力: SystemCapability.Utils.Lang

返回值:

類型說明
IterableIterator返回一個(gè)所有鍵值對(duì)的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]>

返回一個(gè)ES6的迭代器,迭代器的每一項(xiàng)都是一個(gè) JavaScript Array。Array的第一項(xiàng)是name,Array的第二項(xiàng)是value。

系統(tǒng)能力: SystemCapability.Utils.Lang

返回值:

類型說明
IterableIterator<[string, string]>返回一個(gè)ES6的迭代器。

示例:

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

tostring

toString(): string

返回序列化為字符串的搜索參數(shù),必要時(shí)對(duì)字符進(jìn)行百分比編碼。

系統(tǒng)能力: SystemCapability.Utils.Lang

返回值:

類型說明
string返回序列化為字符串的搜索參數(shù),必要時(shí)對(duì)字符進(jìn)行百分比編碼。

示例:

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

屬性

系統(tǒng)能力: 以下各項(xiàng)對(duì)應(yīng)的系統(tǒng)能力均為SystemCapability.Utils.Lang

名稱參數(shù)類型可讀可寫說明
hashstring獲取和設(shè)置URL的片段部分。
hoststring獲取和設(shè)置URL的主機(jī)部分。
hostnamestring獲取和設(shè)置URL的主機(jī)名部分,不帶端口
hrefstring獲取和設(shè)置序列化的URL。
originstring獲取URL源的只讀序列化。
passwordstring獲取和設(shè)置URL的密碼部分。
pathnamestring獲取和設(shè)置URL的路徑部分。
portstring獲取和設(shè)置URL的端口部分。
protocolstring獲取和設(shè)置URL的協(xié)議部分。
searchstring獲取和設(shè)置URL的序列化查詢部分。
searchParamsURLsearchParams獲取URLSearchParams表示URL查詢參數(shù)的對(duì)象。
usernamestring獲取和設(shè)置URL的用戶名部分。

constructor

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

URL的構(gòu)造函數(shù)。

系統(tǒng)能力: SystemCapability.Utils.Lang

參數(shù):

參數(shù)名類型必填說明
urlstring入?yún)?duì)象。
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轉(zhuǎn)化為字符串。

系統(tǒng)能力: SystemCapability.Utils.Lang

返回值:

類型說明
string用于返回網(wǎng)址的字符串序列化。

示例:

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

toJSON

toJSON(): string

將解析過后的URL轉(zhuǎn)化為JSON字符串。

系統(tǒng)能力: SystemCapability.Utils.Lang

返回值:

QQ截圖20240705211022.png

類型說明HarmonyOSOpenHarmony鴻蒙文檔籽料:mau123789是v直接拿
string用于返回網(wǎng)址的字符串序列化。

示例:

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

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • URL
    URL
    +關(guān)注

    關(guān)注

    0

    文章

    139

    瀏覽量

    15299
  • 字符串
    +關(guān)注

    關(guān)注

    1

    文章

    575

    瀏覽量

    20470
  • 鴻蒙
    +關(guān)注

    關(guān)注

    57

    文章

    2303

    瀏覽量

    42691
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    C++字符串string

    string是C++編程語言中的字符串。在C++中字符串處理可以使用c語言字符串形式char *,也可以使用string
    的頭像 發(fā)表于 07-10 00:26 ?1195次閱讀
    C++<b class='flag-5'>字符串</b>string

    OpenHarmony語言基礎(chǔ)庫(kù)【@ohos.url (URL字符串解析)】

    接口從API version 7開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨(dú)標(biāo)記接口的起始版本。
    的頭像 發(fā)表于 04-24 22:13 ?588次閱讀
    OpenHarmony<b class='flag-5'>語言</b>基礎(chǔ)<b class='flag-5'>類</b><b class='flag-5'>庫(kù)</b>【@<b class='flag-5'>ohos.url</b> (<b class='flag-5'>URL</b><b class='flag-5'>字符串</b><b class='flag-5'>解析</b>)】

    ArkTS語言基礎(chǔ)庫(kù)-解析

    被設(shè)計(jì)用來傳輸和存儲(chǔ)數(shù)據(jù),是一種可擴(kuò)展標(biāo)記語言。語言基礎(chǔ)庫(kù)提供了[XML生成、解析與轉(zhuǎn)換]的能力。 U
    發(fā)表于 02-20 16:44

    鴻蒙原生應(yīng)用開發(fā)-ArkTS語言基礎(chǔ)庫(kù)概述

    擴(kuò)展標(biāo)記語言。語言基礎(chǔ)庫(kù)提供了XML生成、解析與轉(zhuǎn)換的能力。 URL、URI構(gòu)造和
    發(fā)表于 03-05 15:42

    C語言實(shí)現(xiàn)url解析小實(shí)例

    ,URL_RESULT_T *result)參數(shù):raw_url:指向一個(gè)url字符串,比如:ftp://peng:pass@baidu.com/dir/index.htmlresul
    發(fā)表于 04-12 09:10

    URL,URL是什么意思

    URL,URL是什么意思 URL(Uniform Resoure Locator:統(tǒng)一資源定位器)是WWW頁(yè)的地址,它從左到右由下述部分組成: &
    發(fā)表于 03-22 10:53 ?8241次閱讀

    實(shí)例解析Java字符串內(nèi)存管理方法

    Java[1]語言字符串操作提供了豐富的支持,它將字符串封裝在三個(gè)中并提供多種字符串操作接口。在Java應(yīng)用程序中,由于對(duì)
    發(fā)表于 10-27 10:20 ?1次下載
    實(shí)例<b class='flag-5'>解析</b>Java<b class='flag-5'>字符串</b>內(nèi)存管理方法

    簡(jiǎn)述go語言標(biāo)準(zhǔn)庫(kù) net/url 庫(kù)的過程。

    url解析 URL 并實(shí)現(xiàn)了查詢的逸碼,參見 RFC 3986。 func PathEscape func PathEscape(s string) string PathEscape 會(huì)將
    的頭像 發(fā)表于 08-14 10:35 ?1544次閱讀

    strtok拆分字符串

    就是字符格式。有些場(chǎng)景需要使用多個(gè)處理器協(xié)同工作,比如單片機(jī)+openmv,它們之間需要通信,可以采用字符格式的編碼方式。操作字符串,無非是兩件事兒:生成字符串
    發(fā)表于 01-13 15:46 ?8次下載
    strtok拆分<b class='flag-5'>字符串</b>

    C語言總結(jié)_字符串全方位練習(xí)

    C語言字符串全方位練習(xí),涉及知識(shí)點(diǎn):字符串解析、大小寫判斷、字符串插入、字符串刪除、
    的頭像 發(fā)表于 08-14 09:41 ?1435次閱讀

    C語言-字符串處理

    字符串在C語言里使用非常多,因?yàn)楹芏鄶?shù)據(jù)處理都是文本,也就是字符串,特別是設(shè)備交互、web網(wǎng)頁(yè)交互返回的幾乎都是文本數(shù)據(jù)。 這篇文章就介紹字符串定義、和基本處理的方法。
    的頭像 發(fā)表于 08-14 10:05 ?1714次閱讀

    關(guān)于STEP7庫(kù)功能字符串轉(zhuǎn)換

    庫(kù)libraries---Standard Libray---TI-S7 Converting Blocks) FC編號(hào) 功能名稱 描述 FC5 DI_STRING 雙整數(shù)轉(zhuǎn)字符串 FC16
    的頭像 發(fā)表于 10-10 10:50 ?4011次閱讀

    C語言字符串的引用方式

    在C語言程序中,字符串是存放在字符數(shù)組中的。 2. 用字符數(shù)組存放一個(gè)字符串,可以通過數(shù)組名和下標(biāo)引用
    的頭像 發(fā)表于 03-10 14:57 ?1819次閱讀

    c語言字符串定義

    C語言是一種強(qiáng)大而廣泛使用的編程語言,字符串是其中一個(gè)非常重要的概念。在C語言中,字符串是由一系列字符
    的頭像 發(fā)表于 11-24 10:02 ?1742次閱讀

    C語言字符串編譯函數(shù)介紹

    在C語言中,字符串實(shí)際上是使用null字符O'終止的一維字符數(shù)組。因此,一個(gè)以null結(jié)尾的字符串,包含了組成
    的頭像 發(fā)表于 03-07 16:18 ?462次閱讀
    C<b class='flag-5'>語言</b><b class='flag-5'>字符串</b>編譯函數(shù)介紹