123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- // Copyright 2014 The Go Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style
- // license that can be found in the LICENSE file.
- package runes_test
- import (
- "fmt"
- "unicode"
- "golang.org/x/text/runes"
- "golang.org/x/text/transform"
- "golang.org/x/text/unicode/norm"
- "golang.org/x/text/width"
- )
- func ExampleRemove() {
- t := transform.Chain(norm.NFD, runes.Remove(runes.In(unicode.Mn)), norm.NFC)
- s, _, _ := transform.String(t, "résumé")
- fmt.Println(s)
- // Output:
- // resume
- }
- func ExampleMap() {
- replaceHyphens := runes.Map(func(r rune) rune {
- if unicode.Is(unicode.Hyphen, r) {
- return '|'
- }
- return r
- })
- s, _, _ := transform.String(replaceHyphens, "a-b‐c⸗d﹣e")
- fmt.Println(s)
- // Output:
- // a|b|c|d|e
- }
- func ExampleIn() {
- // Convert Latin characters to their canonical form, while keeping other
- // width distinctions.
- t := runes.If(runes.In(unicode.Latin), width.Fold, nil)
- s, _, _ := transform.String(t, "アルアノリウ tech / アルアノリウ tech")
- fmt.Println(s)
- // Output:
- // アルアノリウ tech / アルアノリウ tech
- }
- func ExampleIf() {
- // Widen everything but ASCII.
- isASCII := func(r rune) bool { return r <= unicode.MaxASCII }
- t := runes.If(runes.Predicate(isASCII), nil, width.Widen)
- s, _, _ := transform.String(t, "アルアノリウ tech / 中國 / 5₩")
- fmt.Println(s)
- // Output:
- // アルアノリウ tech / 中國 / 5₩
- }
|