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

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

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

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

jf_46214456 ? 來源:jf_46214456 ? 作者:jf_46214456 ? 2024-07-08 22:31 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

URL字符串解析

icon-note.gif說明: 本模塊首批接口從API version 7開始支持。后續(xù)版本的新增接口,采用上角標單獨標記接口的起始版本。 開發(fā)前請熟悉鴻蒙開發(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

將新的鍵值對插入到查詢字符串。

系統(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

刪除指定名稱的鍵值對。

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

參數(shù):

參數(shù)名類型必填說明
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[]

獲取指定名稱的所有鍵值對。

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

參數(shù):

參數(shù)名類型必填說明
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。

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

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

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

參數(shù):

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

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

參數(shù)名類型必填說明
valuestring當前遍歷到的鍵值。
keystring當前遍歷到的鍵名。
searchParamsObject當前調(diào)用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

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

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

參數(shù):

參數(shù)名類型必填說明
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

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

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

參數(shù):

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

返回值:

類型說明
boolean是否存在相對應(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對象中的值設(shè)置為value。如果存在名稱為name的鍵值對,請將第一個鍵值對的值設(shè)置為value并刪除所有其他值。如果不是,則將鍵值對附加到查詢字符串。

系統(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

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

系統(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

返回一個所有鍵值對的name的ES6迭代器。

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

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

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

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

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

返回值:

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

示例:

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)能力: 以下各項對應(yīng)的系統(tǒng)能力均為SystemCapability.Utils.Lang

名稱參數(shù)類型可讀可寫說明
hashstring獲取和設(shè)置URL的片段部分。
hoststring獲取和設(shè)置URL的主機部分。
hostnamestring獲取和設(shè)置URL的主機名部分,不帶端口。
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ù)的對象。
usernamestring獲取和設(shè)置URL的用戶名部分。

constructor

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

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

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

參數(shù):

參數(shù)名類型必填說明
urlstring入?yún)ο蟆?/td>
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)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • URL
    URL
    +關(guān)注

    關(guān)注

    0

    文章

    140

    瀏覽量

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

    關(guān)注

    1

    文章

    589

    瀏覽量

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

    關(guān)注

    59

    文章

    2564

    瀏覽量

    43877
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    C++字符串string

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

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

    接口從API version 7開始支持。后續(xù)版本的新增接口,采用上角標單獨標記接口的起始版本。
    的頭像 發(fā)表于 04-24 22:13 ?956次閱讀
    OpenHarmony<b class='flag-5'>語言</b>基礎(chǔ)<b class='flag-5'>類</b><b class='flag-5'>庫</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ǔ)-解析

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

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

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

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

    ,URL_RESULT_T *result)參數(shù):raw_url:指向一個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頁的地址,它從左到右由下述部分組成: &
    發(fā)表于 03-22 10:53 ?8316次閱讀

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

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

    簡述go語言標準 net/url 的過程。

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

    strtok拆分字符串

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

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

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

    C語言-字符串處理

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

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

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

    C語言字符串的引用方式

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

    c語言字符串定義

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

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

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

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品