Go 語言中的字符串

Go 語言中的字符串是 byte 值的序列。 如前所述,你可以使用下面的語法來定義一個字符串: var name = "test" 需要注意的是,和其他語言不同,字符串只能使用雙引號來定義,不能使用單引號。 要獲取字符串的長度,可以使用內建的 len() 函數: len(name) //4 你可以使用方括號來訪問字符串中的個別字符,通過傳遞所需字符的索引: name[0] //"t"(索引從 0 開始) name[1] //"e" 你可以使用以下語法獲取字符串的一部分: name[0:2] //"te" name[:2] //"te" name[2:] //"st" 使用這種方式,你可以創建字符串的副本: var newstring = name[:] 你可以將字符串分配給一個新變量: var first = "test" var second = first 字符串是不可變的,這意味著你不能更新字符串的值。 即使你使用賦值運算符將新值分配給 first,second 的值仍然是 "test": var first = "test" var second = first first = "another test" first //"another test" second //"test" 字符串是引用類型,這意味著如果你將一個字符串傳遞給一個函數,會複製字符串的引用,而不是它的值。但由於字符串是不可變的,在這種情況下與傳遞一個 int 沒有太大區別。 你可以使用 + 運算符來連接兩個字符串:...

在JavaScript中替換字符串的所有匹配項

了解在純JavaScript中替換字符串的所有匹配項的正確方法,從正則表達式到其他方法。 使用正則表達式 這個簡單的正則表達式可以完成任務: String.replace(/<TERM>/g, '') 這將執行區分大小寫的替換。 以下是一個示例,我將字符串phrase中單詞’dog’的所有匹配項替換為空字符串: const phrase = 'I love my dog! Dogs are great' const stripped = phrase.replace(/dog/g, '') stripped //"I love my ! Dogs are great" 要執行不區分大小寫的替換,請在正則表達式中使用i選項: String.replace(/<TERM>/gi, '') 示例: const phrase = 'I love my dog! Dogs are great' const stripped = phrase.replace(/dog/gi, '') stripped //"I love my ! s are great" 請記住,如果字符串包含一些特殊字符,它將無法正確處理正則表達式,因此建議使用此函數將字符串進行轉義(從MDN中取得): const escapeRegExp = (string) => { return string.replace(/[.\*+?^${}()|[\]\\]/g, '\\$&') } 使用split和join 另一種解決方案,儘管比正則表達式慢,是使用兩個JavaScript函數。...

如何使用JavaScript將逗號轉換為點

我遇到了一個問題:我有一個字串包含一個十進制數字,但使用者可以用兩種方式來表示,這包含使用點或逗號: 0,32 0.32 不同的國家使用不同的方法在數字中分隔整數部分和小數部分。 所以我決定在找到逗號時將字串轉換為使用點。 我使用了一個簡單的正則表達式來做到這一點: let value = '0,32' value = value.replace(/,/g, '.') //value 現在為 '0.32' 您可以使用replace(/\./g, ',')來進行相反的操作(請注意在正則表達式中點前面的\,因為它是一個特殊字符)。 正則表達式中的g標誌確保如果逗號(或點在第二個例子中)有多個實例,它們都會被轉換。 這在我們的使用情境下並不適用,我認為我們需要進行更多驗證來檢查輸入的完整性,但這是一個開始。 在我的情況下,在進行這個替換之後,我調用了parseFloat(value)來從字符串中得到浮點數,然後使用toFixed(2)將小數位數限制為2: value = parseFloat(value).toFixed(2)

如何在JavaScript中將字符串的第一個字母轉換為大寫

在JavaScript中,有多種方法可以將字符串的第一個字符轉換為大寫。學習這些方法,並找出哪一種方法是最好的,純粹使用JavaScript。 將字符串的第一個字符轉換為大寫是一個常見的字符串操作之一:將其第一個字母轉為大寫,保持字符串的其餘部分不變。 最好的方法是通過兩個函數的組合來實現。 一個函數用於將第一個字符轉為大寫,第二個函數用於切割字符串並從第二個字符開始返回。 像這樣: const name = 'flavio' const nameCapitalized = name.charAt(0).toUpperCase() + name.slice(1) 你可以將這個字符串轉換為大寫的方法提取到一個函數中,該函數還檢查傳入的參數是否為字符串,如果不是則返回空字符串: const capitalize = (s) => { if (typeof s !== 'string') return '' return s.charAt(0).toUpperCase() + s.slice(1) } capitalize('flavio') //'Flavio' capitalize('f') //'F' capitalize(0) //'' capitalize({}) //'' 你也可以使用字符串索引(在較舊的IE版本中不支持)來代替charAt(0):s[0]。 在線上有一些解決方案也可以將字符串的第一個字母轉為大寫,它們將這個函數添加到String的原型上: String.prototype.capitalize = function() { return this.charAt(0).toUpperCase() + this.slice(1) } (我們使用常規函數來使用this - 箭頭函數在這種情況下會失敗,因為箭頭函數中的this不引用當前對象) 這個解決方案不是理想的,因為通常不建議編輯原型,而且這是一個比獨立函數慢得多的解決方案。 不要忘記,如果你只是想在Web頁面上以呈現的方式將第一個字母轉為大寫,CSS可能是一個更好的解決方案,只需將capitalize類添加到HTML段落中,並使用: p.capitalize { text-transform: capitalize; }