Go語言字符串和正則表達式

字符串相關方法

  • 獲取字符串長度
    • 注意: Go語言編碼方式是UTF-8,在UTF-8中一個漢字占3個字節

package main

import "fmt"

func main() {

??? str1 := "lnj"

??? fmt.Println(len(str1)) // 3

??? str2 := "lnj"

??? fmt.Println(len(str2)) // 12

}

  • 如果字符串中包含中文, 又想精確的計算字符串中字符的個數而不是占用的字節, 那么必須先將字符串轉換為rune類型數組
    • Go語言中byte用于保存字符, rune用于保存漢字

package main

import "fmt"

func main() {

??? str := "lnj"

??? // 注意byte占1個字節, 只能保存字符不能保存漢字,因為一個漢字占用3個字節

??? arr1 := []byte(str) // 12

??? fmt.Println(len(arr1))

??? for _, v := range arr1{

??????? fmt.Printf("%c", v)?

??? }

?

??? // Go語言中rune類型就是專門用于保存漢字的

??? arr2 := []rune(str)

??? fmt.Println(len(arr2)) // 6

??? for _, v := range arr2{

??????? fmt.Printf("%c", v) // lnj

??? }

}

  • 查找子串在字符串中出現的位置
    • func Index(s, sep string) int
    • func IndexByte(s string, c byte) int
    • func IndexRune(s string, r rune) int
    • func IndexAny(s, chars string) int
    • func IndexFunc(s string, f func(rune) bool) int
    • func LastIndex(s, sep string) int
    • func LastIndexByte(s string, c byte) int
    • func LastIndexAny(s, chars string) int
    • func LastIndexFunc(s string, f func(rune) bool) int

package main

import (

??? "strings"

??? "fmt"

)

func main() {

??? // 查找`字符`在字符串中第一次出現的位置, 找不到返回-1

??? res := strings.IndexByte("hello", 'l')

??? fmt.Println(res) // 2

?

??? // 查找`漢字`OR`字符`在字符串中第一次出現的位置, 找不到返回-1

??? res = strings.IndexRune("hello", 'l')

??? fmt.Println(res) // 6

??? res = strings.IndexRune("hello", 'l')

??? fmt.Println(res) // 2

?

??? // 查找`漢字`OR`字符`中任意一個在字符串中第一次出現的位置, 找不到返回-1

??? res = strings.IndexAny("hello", "wml")

??? fmt.Println(res) // 2

??? // 會把wmhl拆開逐個查找, w、m、h、l只要任意一個被找到, 立刻停止查找

??? res = strings.IndexAny("hello", "wmhl")

??? fmt.Println(res) // 0

??? // 查找`子串`在字符串第一次出現的位置, 找不到返回-1

??? res = strings.Index("hello 李南江", "llo")

??? fmt.Println(res) // 2

??? // 會把lle當做一個整體去查找, 而不是拆開

??? res = strings.Index("hello", "lle")

??? fmt.Println(res) // -1

??? // 可以查找字符也可以查找漢字

??? res = strings.Index("hello", "l")

??? fmt.Println(res) // 6

?

??? // 會將字符串先轉換為[]rune, 然后遍歷rune切片逐個取出傳給自定義函數

??? // 只要函數返回true,代表符合我們的需求, 既立即停止查找

??? res = strings.IndexFunc("hello 李南江", custom)

??? fmt.Println(res) // 6

?

??? // 倒序查找`子串`在字符串第一次出現的位置, 找不到返回-1

??? res := strings.LastIndex("hello ", "l")

??? fmt.Println(res) // 3

}

func custom(r rune) bool {

??? fmt.Printf("被調用了, 當前傳入的是%c\n", r)

??? if r == 'o' {

??????? return true

??? }

??? return false

}

  • 判斷字符串中是否包含子串
    • func Contains(s, substr string) bool
    • func ContainsRune(s string, r rune) bool
    • func ContainsAny(s, chars string) bool
    • func HasPrefix(s, prefix string) bool
    • func HasSuffix(s, suffix string) bool

package main

import (

??? "strings"

??? "fmt"

)

func main() {

??? // 查找`子串`在字符串中是否存在, 存在返回true, 不存在返回false

??? // 底層實現就是調用strings.Index函數

??? res := strings.Contains( "hello", "llo")

??? fmt.Println(res) // true

?

??? // 查找`漢字`OR`字符`在字符串中是否存在, 存在返回true, 不存在返回false

??? // 底層實現就是調用strings.IndexRune函數

??? res = strings.ContainsRune( "hello", 'l')

??? fmt.Println(res) // true

??? res = strings.ContainsRune( "hello", 'l')

??? fmt.Println(res) // true

?

??? // 查找`漢字`OR`字符`中任意一個在字符串中是否存在, 存在返回true, 不存在返回false

??? // 底層實現就是調用strings.IndexAny函數

??? res = strings.ContainsAny( "hello", "wmhl")

??? fmt.Println(res) // true

?

??? // 判斷字符串是否已某個字符串開頭

??? res = strings.HasPrefix("lnj-book.avi", "lnj")

??? fmt.Println(res) // true

?

??? // 判斷字符串是否已某個字符串結尾

??? res = strings.HasSuffix("lnj-book.avi", ".avi")

??? fmt.Println(res) // true

}

  • 字符串比較
    • func Compare(a, b string) int
    • func EqualFold(s, t string) bool

package main

import (

??? "strings"

??? "fmt"

)

func main() {

??? // 比較兩個字符串大小, 會逐個字符地進行比較ASCII值

??? // 第一個參數 >? 第二個參數 返回 1

??? // 第一個參數 <? 第二個參數 返回 -1

??? // 第一個參數 == 第二個參數 返回 0

??? res := strings.Compare("bcd", "abc")

??? fmt.Println(res) // 1

??? res = strings.Compare("bcd", "bdc")

??? fmt.Println(res) // -1

??? res = strings.Compare("bcd", "bcd")

??? fmt.Println(res) // 0

?

??? // 判斷兩個字符串是否相等, 可以判斷字符和中文

??? // 判斷時會忽略大小寫進行判斷

??? res2 := strings.EqualFold("abc", "def")

??? fmt.Println(res2) // false

??? res2 = strings.EqualFold("abc", "abc")

??? fmt.Println(res2) // true

??? res2 = strings.EqualFold("abc", "ABC")

??? fmt.Println(res2) // true

??? res2 = strings.EqualFold("111", "111")

??? fmt.Println(res2) // true

}

  • 字符串轉換
    • func ToUpper(s string) string
    • func ToLower(s string) string
    • func ToTitle(s string) string
    • func ToUpperSpecial(_case unicode.SpecialCase, s string) string
    • func ToLowerSpecial(_case unicode.SpecialCase, s string) string
    • func ToTitleSpecial(_case unicode.SpecialCase, s string) string
    • func Title(s string) string

package main

import (

??? "strings"

??? "fmt"

)

func main() {

??? // 將字符串轉換為小寫

??? res := strings.ToLower("ABC")

??? fmt.Println(res) // abc

???

??? // 將字符串轉換為大寫

??? res = strings.ToUpper("abc")

??? fmt.Println(res) // ABC

?

??? // 將字符串轉換為標題格式, 大部分`字符`標題格式就是大寫

??? res = strings.ToTitle("hello world")

??? fmt.Println(res) // HELLO WORLD

??? res = strings.ToTitle("HELLO WORLD")

??? fmt.Println(res) // HELLO WORLD

?

??? // 將單詞首字母變為大寫, 其它字符不變

??? // 單詞之間用空格OR特殊字符隔開

??? res = strings.Title("hello world")

??? fmt.Println(res) // Hello World

}

  • 字符串拆合
    • func Split(s, sep string) []string
    • func SplitN(s, sep string, n int) []string
    • func SplitAfter(s, sep string) []string
    • func SplitAfterN(s, sep string, n int) []string
    • func Fields(s string) []string
    • func FieldsFunc(s string, f func(rune) bool) []string
    • func Join(a []string, sep string) string
    • func Repeat(s string, count int) string
    • func Replace(s, old, new string, n int) string

package main

import (

??? "strings"

??? "fmt"

)

func main() {

??? // 按照指定字符串切割原字符串

??? // 用,切割字符串

??? arr1 := strings.Split("a,b,c", ",")

??? fmt.Println(arr1) // [a b c]

??? arr2 := strings.Split("ambmc", "m")

??? fmt.Println(arr2) // [a b c]

?

??? // 按照指定字符串切割原字符串, 并且指定切割為幾份

??? // 如果最后一個參數為0, 那么會范圍一個空數組

??? arr3 := strings.SplitN("a,b,c", ",", 2)

??? fmt.Println(arr3) // [a b,c]

??? arr4 := strings.SplitN("a,b,c", ",", 0)

??? fmt.Println(arr4) // []

?

??? // 按照指定字符串切割原字符串, 切割時包含指定字符串

??? arr5 := strings.SplitAfter("a,b,c", ",")

??? fmt.Println(arr5) // [a, b, c]

?

??? // 按照指定字符串切割原字符串, 切割時包含指定字符串, 并且指定切割為幾份

??? arr6 := strings.SplitAfterN("a,b,c", ",", 2)

??? fmt.Println(arr6) // [a, b,c]

?

??? // 按照空格切割字符串, 多個空格會合并為一個空格處理

??? arr7 := strings.Fields("a? b c??? d")

??? fmt.Println(arr7) // [a b c d]

?

??? // 將字符串轉換成切片傳遞給函數之后由函數決定如何切割

??? // 類似于IndexFunc

??? arr8 := strings.FieldsFunc("a,b,c", custom)

??? fmt.Println(arr8) // [a b c]

?

??? // 將字符串切片按照指定連接符號轉換為字符串

??? sce := []string{"aa", "bb", "cc"}

??? str1 := strings.Join(sce, "-")

??? fmt.Println(str1) // aa-bb-cc

?

?

??? // 返回count個s串聯的指定字符串

??? str2 := strings.Repeat("abc", 2)

??? fmt.Println(str2) // abcabc

?

??? // 第一個參數: 需要替換的字符串

??? // 第二個參數: 舊字符串

??? // 第三個參數: 新字符串

??? // 第四個參數: 用新字符串 替換 多少個舊字符串

??? // 注意點: 傳入-1代表只要有舊字符串就替換

??? // 注意點: 替換之后會生成新字符串, 原字符串不會受到影響

??? str3 := "abcdefabcdefabc"

??? str4 := strings.Replace(str3, "abc", "mmm", -1)

??? fmt.Println(str3) // abcdefabcdefabc

??? fmt.Println(str4) // mmmdefmmmdefmmm

}

func custom(r rune) bool {

??? fmt.Printf("被調用了, 當前傳入的是%c\n", r)

??? if r == ',' {

??????? return true

??? }

??? return false

}

  • 字符串清理
    • func Trim(s string, cutset string) string
    • func TrimLeft(s string, cutset string) string
    • func TrimRight(s string, cutset string) string
    • func TrimFunc(s string, f func(rune) bool) string
    • func TrimLeftFunc(s string, f func(rune) bool) string
    • func TrimRightFunc(s string, f func(rune) bool) string
    • func TrimSpace(s string) string
    • func TrimPrefix(s, prefix string) string
    • func TrimSuffix(s, suffix string) string

package main

import (

??? "strings"

??? "fmt"

)

func main() {

??? // 去除字符串兩端指定字符

??? str1 := strings.Trim("!!!abc!!!def!!!", "!")

??? fmt.Println(str1) // abc!!!def

??? // 去除字符串左端指定字符

??? str2 := strings.TrimLeft("!!!abc!!!def!!!", "!")

??? fmt.Println(str2) // abc!!!def!!!

??? // 去除字符串右端指定字符

??? str3 := strings.TrimRight("!!!abc!!!def!!!", "!")

??? fmt.Println(str3) // !!!abc!!!def

??? // // 去除字符串兩端空格

??? str4 := strings.TrimSpace("?? abc!!!def ")

??? fmt.Println(str4) // abc!!!def

?

??? // 按照方法定義規則,去除字符串兩端符合規則內容

??? str5 := strings.TrimFunc("!!!abc!!!def!!!", custom)

??? fmt.Println(str5) // abc!!!def

??? // 按照方法定義規則,去除字符串左端符合規則內容

??? str6 := strings.TrimLeftFunc("!!!abc!!!def!!!", custom)

??? fmt.Println(str6) // abc!!!def!!!

??? //? 按照方法定義規則,去除字符串右端符合規則內容

??? str7 := strings.TrimRightFunc("!!!abc!!!def!!!", custom)

??? fmt.Println(str7) // !!!abc!!!def

?

??? // 取出字符串開頭的指定字符串

??? str8 := strings.TrimPrefix("lnj-book.avi", "lnj-")

??? fmt.Println(str8) // book.avi

?

??? // 取出字符串結尾的指定字符串

??? str9 := strings.TrimSuffix("lnj-book.avi", ".avi")

??? fmt.Println(str9) // lnj-book

}


正則表達式

  • 正則表達式是對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個“規則字符串”,這個“規則字符串”用來表達對字符串的一種過濾邏輯。
  • 相關規則標準詳見
    • 百度百科
    • Go語言官方文檔regexp包
  • Go語言中正則表達式使用步驟
    • 1.創建一個正則表達式匹配規則對象
    • 2.利用正則表達式匹配規則對象匹配指定字符串
    • ps:相關規則

package main

import (

??? "strings"

??? "fmt"

)

func main() {

??? // 創建一個正則表達式匹配規則對象

??? // reg := regexp.MustCompile(規則字符串)

??? // 利用正則表達式匹配規則對象匹配指定字符串

??? // 會將所有匹配到的數據放到一個字符串切片中返回

??? // 如果沒有匹配到數據會返回nil

??? // res := reg.FindAllString(需要匹配的字符串, 匹配多少個)

?

??? str := "Hello 1232"

??? reg := regexp.MustCompile("2")

?? ?res := reg.FindAllString(str, -1)

??? fmt.Println(res) // [2 2]

??? res = reg.FindAllString(str, 1)

??? fmt.Println(res) // [2]

}

  • 匹配電話號碼

package main

import (

??? "strings"

??? "fmt"

)

func main() {

??? res2 := findPhoneNumber("13554499311")

??? fmt.Println(res2) // true

?

??? res2 = findPhoneNumber("03554499311")

??? fmt.Println(res2) // false

?

??? res2 = findPhoneNumber("1355449931")

??? fmt.Println(res2) // false

}

func findPhoneNumber(str string) bool {

??? // 創建一個正則表達式匹配規則對象

??? reg := regexp.MustCompile("^1[1-9]{10}")

??? // 利用正則表達式匹配規則對象匹配指定字符串

??? res := reg.FindAllString(str, -1)

??? if(res == nil){

??????? return? false

??? }

??? return? true

}

  • 匹配Email

package main

import (

??? "strings"

??? "fmt"

)

func main() {

??? res2 = findEmail("123@qq.com")

??? fmt.Println(res2) // true

?

??? res2 = findEmail("ab?de@qq.com")

??? fmt.Println(res2) // false

?

??? res2 = findEmail("123@qqcom")

??? fmt.Println(res2) // false

}

func findEmail(str string) bool {

??? reg := regexp.MustCompile("^[a-zA-Z0-9_]+@[a-zA-Z0-9]+\\.[a-zA-Z0-9]+")

??? res := reg.FindAllString(str, -1)

??? if(res == nil){

??????? return? false

??? }

??? return? true

}


時間和日期函數

  • 獲取當前時間

package main

?

import (

??? "fmt"

??? "time"

)

func main()? {

??? var t time.Time = time.Now()

??? // 2018-09-27 17:25:11.653198 +0800 CST m=+0.009759201

??? fmt.Println(t)

}

  • 獲取年月日時分秒

package main

?

import (

??? "fmt"

??? "time"

)

func main()? {

??? var t time.Time = time.Now()

??? fmt.Println(t.Year())

??? fmt.Println(t.Month())

??? fmt.Println(t.Day())

??? fmt.Println(t.Hour())

??? fmt.Println(t.Minute())

??? fmt.Println(t.Second())

}

  • 格式化時間

package main

?

import (

??? "fmt"

??? "time"

)

func main()? {

??? var t time.Time = time.Now()

??? fmt.Printf("當前的時間是: %d-%d-%d %d:%d:%d\n", t.Year(),

??????? t.Month(), t.Day(), t.Hour(), t.Minute(), t.Second())

?

??? var dateStr = fmt.Sprintf("%d-%d-%d %d:%d:%d", t.Year(),

??????? t.Month(), t.Day(), t.Hour(), t.Minute(), t.Second())

fmt.Println("當前的時間是:", dateStr)

}

package main

?

import (

??? "fmt"

??? "time"

)

func main()? {

??? var t time.Time = time.Now()

??? // 2006/01/02 15:04:05這個字符串是Go語言規定的, 各個數字都是固定的

??? // 字符串中的各個數字可以只有組合, 這樣就能按照需求返回格式化好的時間

??? str1 := t.Format("2006/01/02 15:04:05")

??? fmt.Println(str1)

??? str2 := t.Format("2006/01/02")

??? fmt.Println(str2)

??? str3 := t.Format("15:04:05")

??? fmt.Println(str3)

}

  • 時間常量
    • 一般用于指定時間單位, 和休眠函數配合使用
    • 例如: 100毫秒,?100 *time.Millisecond

const (

??? Nanosecond? Duration = 1 ???// 納秒

??? Microsecond????????? = 1000 * Nanosecond // 微秒

??? Millisecond????????? = 1000 * Microsecond // 毫秒

??? Second?????????????? = 1000 * Millisecond // 秒

??? Minute?????????????? = 60 * Second // 分鐘

??? Hour???????????????? = 60 * Minute // 小時

)

package main

?

import (

??? "fmt"

??? "time"

)

func main()? {

??? for{

??????? // 1秒鐘打印一次

??????? time.Sleep(time.Second * 1)

??????? // 0.1秒打印一次

??????? //time.Sleep(time.Second * 0.1)

??????? time.Sleep(time.Millisecond * 100)

??????? fmt.Println("Hello LNJ")

??? }

}

  • 獲取當前時間戳
    • Unix秒
    • UnixNano納秒
    • 一般用于配合隨機函數使用, 作為隨機函數隨機種子

package main

?

import (

??? "fmt"

??? "time"

)

?

func main()? {

??? t := time.Now()

??? // 獲取1970年1月1日距離當前的時間(秒)

??? fmt.Println(t.Unix())

??? // 獲取1970年1月1日距離當前的時間(納秒)

??? fmt.Println(t.UnixNano())

}

package main

?

import (

??? "fmt"

??? "math/rand"

??? "time"

)

func main()? {

??? // 創建隨機數種子

??? rand.Seed(time.Now().UnixNano())

??? // 生成一個隨機數

??? fmt.Println(rand.Intn(10))

}

?

轉載于:https://www.cnblogs.com/siro/p/11116608.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/248615.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/248615.shtml
英文地址,請注明出處:http://en.pswp.cn/news/248615.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

你疏漏的 JS 函數硬核知識?這里幫你總結了

重點 更多前端知識 誠邀各位前端從事者愛好者加入前端大佬技術交流社區&#xff0c;本社區主要分享技術棧、個人心得、技術交流、問題解惑等前端體系交流 點擊下方文字加入 前端大佬技術交流社區 1. 函數的定義和調用 1.1 函數的定義方式 方式1 函數聲明方式 function 關鍵…

7 月 1 日

7 月 1 日 今日內容 1.計算機基礎知識 2.python簡介 3.快速入門 昨日回顧 無內容詳細 1.計算機基礎知識 輸入輸出設備 CPU 硬盤 電源 中央處理器 處理各種數據 相當于人的大腦 內存 存儲數據 硬盤 存儲數據的 什么是操作系統 控制計算機工作的流程 軟件 什么是應用程序 安裝在操…

再見了 React、Angular,Vue3 才是 yyds

切記一定要看到最后&#xff01;&#xff01;&#xff01; 最近看到一篇文章上面是一作者資訊一位IT前輩&#xff0c;問他怎么看待工作 2 年的前端開發&#xff0c;月薪就高達 30k、40k 的現狀。 他說&#xff0c;在眾多編程技術中&#xff0c;前端算比較容易入門和提升的&am…

HBase實戰:記一次Safepoint導致長時間STW的踩坑之旅

本文記錄了HBase中Safepoint導致長時間STW此問題的解決思路及辦法。上篇文章回顧&#xff1a;HBase Replication詳解?過 程 記 錄現象&#xff1a;小米有一個比較大的公共離線HBase集群&#xff0c;用戶很多&#xff0c;每天有大量的MapReduce或Spark離線分析任務在進行訪問&a…

scrapy 第一個案例(爬取騰訊招聘職位信息)

import scrapy import jsonclass TzcSpider(scrapy.Spider):# spider的名字&#xff0c;唯一name tzc# 起始地址start_urls [https://hr.tencent.com/position.php?keywordspython&tid0&lid2268]# 每個url爬取之后會調用這個方法def parse(self, response):tr resp…

系統帶你學習 WebAPIs 第一講

Web APIs 本篇學習目標&#xff1a; 能夠通過ID來獲取元素 能夠通過標簽名來獲取元素 能夠通過class來獲取元素 能夠通過選擇器來獲取元素 能夠獲取body和html元素 能夠給元素注冊事件 能夠修改元素的內容 能夠區分innerText和innerHTML的區別 能夠修改像div這類普通元素的屬性…

react-webpack config webpack@3.4.1

1.最重要的一點 yarn add webpack3.4.1 -g 2. 解決跨域請求 webpack.json 中添加 https://segmentfault.com/q/1010000008190876?_ea1579884 webpack config less -----框架 ----查看考鏈接 https://blog.csdn.net/mjzhang1993/article/details/79013430轉載于:https://w…

系統帶你學習 WebAPIs 第二講

Web APIs 本篇學習目標&#xff1a; 能夠說出排他操作的一般實現步驟 能夠使用html5中的dataset方式操作自定義屬性 能夠根據提示完成百度換膚的案例 能夠根據提示完成全選案例 能夠根據提示完成tab欄切換案例 能夠區分元素節點、文本節點、屬性節點 能夠獲取指定元素的父元素 …

在微信瀏覽器中 location.reload() 不刷新解決方案(直接調用方法)

1、問題 在微信瀏覽器中&#xff0c;需要時刷新當前頁面。 正常情況下我們直接使用 location.reload 方法來刷新。 2、解決方法 function realod(){var {search,href} window.location;href href.replace(/&?t_reload(\d)/g,)window.location.href href(search?&:…

Python爬蟲學習筆記1:request、selenium、ChromeDrive、GeckoDriver等相關依賴安裝

系列學習筆記參考&#xff1a;python3網絡爬蟲開發實戰 requests # pip install requests import requestsselenium Selenium是一個自動化測試工具&#xff0c;利用它我們可以驅動瀏覽器執行特定的動作&#xff0c;如點擊、下拉等 操作 。 對于一些 JavaScript誼染的頁面來說&a…

系統帶你學習 WebAPIs 第三講

Web APIs 本篇學習目標&#xff1a; 能夠使用removeChild()方法刪除節點 能夠完成動態生成表格案例 能夠使用傳統方式和監聽方式給元素注冊事件 能夠說出事件流執行的三個階段 能夠在事件處理函數中獲取事件對象 能夠使用事件對象取消默認行為 能夠使用事件對象阻止事件冒泡 能…

CSS3文本與字體

一、CSS3 換行 1、word-break&#xff08;規定自動換行的處理方法&#xff09; word-break: normal / break-all / keep-all;/* normal&#xff1a;使用瀏覽器默認的換行規則 break-all&#xff1a;允許在單詞內換行 keep-all&#xff1a;只能在半角空格或連字符處換行 */ 兼容…

系統帶你學習 WebAPIs 第四講

Web APIs 本篇學習目標&#xff1a; 能夠說出常用的3-5個鍵盤事件 能夠知道如何獲取當前鍵盤按下的是哪個鍵 能夠知道瀏覽器的頂級對象window 能夠使用window.onload事件 能夠使用window.onresize事件 能夠說出兩種定時器的區別 能夠使用location對象的href屬性完成頁面之間的跳…

linux chrome 安裝過程記錄

最近&#xff0c;由于公司需要做爬蟲抓取一些新聞&#xff0c;在開發過程中&#xff0c;發現有些網站有一定的反爬措施&#xff0c;通過瀏覽器訪問一切正常&#xff0c;通過其他方式&#xff0c;包括&#xff1a;curl&#xff0c;urlconnection 等&#xff0c;就算加入了cookie…

系統帶你學習 WebAPIs 第五講

Web APIs 本篇學習目標: 能夠說出常見 offset 系列屬性的作用 能夠說出常見 client 系列屬性的作用 能夠說出常見 scroll 系列屬性的作用 能夠封裝簡單動畫函數 **1.1. **元素偏移量 offset 系列 1.1.1 offset 概述 offset 翻譯過來就是偏移量&#xff0c; 我們使用 offset系…

ajax請求相關問題

Ajax中async:false/true的作用&#xff1a; async. 默認是 true&#xff0c;即為異步方式&#xff0c;$.ajax執行后&#xff0c;會繼續執行ajax后面的腳本&#xff0c;直到服務器端返回數據后&#xff0c;觸發$.ajax里的success方法&#xff0c;這時候執行的是兩個線程。 async…

有贊美業微前端的落地總結

2020年4月&#xff0c;有贊美業的前端團隊歷經7個月時間&#xff0c;完成了美業PC架構從單體SPA到微前端架構的設計、遷移工作。PPT在去年6月份就有了&#xff0c;現在再整理一下形成文章分享給大家。 頭圖 目錄 Part 01 “大話”微前端 微前端是什么 背景 目標 達成價值 …

bcp文件, 逗號文件

bcp 實用工具 https://docs.microsoft.com/zh-cn/sql/tools/bcp-utility?viewsql-server-2017 大容量復制程序實用工具 (bcp) 可以在 Microsoft SQL Server 實例和用戶指定格式的數據文件間大容量復制數據。 使用 bcp 實用工具可以將大量新行導入 SQL Server 表&#xff0c;或…

遠程登錄和復制文件

命令&#xff1a; ssh 對應英文&#xff1a; secure shell 使用&#xff1a; ssh [-P] 用戶名ip 優點&#xff1a; 加密和壓縮&#xff0c;即安全和提高傳輸速度 注意&#xff1a; 除了windows系統外的系統默認有ssh客戶端&#xff0c;直接使用命令便可&#xff1b; windows系統…

Markdown 編輯器才是yyds|CSDN編輯器測評

前言 今天小編為大家介紹一款編輯器&#xff0c;也正是小編書寫這篇文章所使用的Markdown編輯器&#xff0c;正是廣大博友想要發布文章的工具。那么 你知道他的都有哪些方便之處么 下面小編帶你了解一下 Markdown是什么 Markdown是一種輕量標記語言,通過簡單的語法&#xff…