Sdílet prostřednictvím


Řetězcové funkce pro Bicep

Tento článek popisuje funkce Bicep pro práci s řetězci.

base64

base64(inputString)

Vrátí reprezentaci vstupního řetězce base64.

Obor názvů: sys.

Parametry

Parametr Požaduje se Type Popis
inputString Ano string Hodnota, která se má vrátit jako reprezentace base64.

Vrácená hodnota

Řetězec obsahující reprezentaci base64.

Příklady

Následující příklad ukazuje, jak používat funkci base64.

param stringData string = 'one, two, three'
param jsonFormattedData string = '{\'one\': \'a\', \'two\': \'b\'}'

var base64String = base64(stringData)
var base64Object = base64(jsonFormattedData)

output base64Output string = base64String
output toStringOutput string = base64ToString(base64String)
output toJsonOutput object = base64ToJson(base64Object)

Výstup z předchozího příkladu s výchozími hodnotami je:

Name Typ Hodnota
base64Output String b25lLCB0d28sIHRocmVl
toStringOutput String Jedna dva tři
toJsonOutput Object {"one": "a", "two": "b"}

base64ToJson

base64ToJson(base64Value)

Převede reprezentaci base64 na objekt JSON.

Obor názvů: sys.

Parametry

Parametr Požaduje se Type Popis
base64Value Ano string Reprezentace base64 pro převod na objekt JSON.

Vrácená hodnota

Objekt JSON.

Příklady

Následující příklad používá funkci base64ToJson k převodu hodnoty base64:

param stringData string = 'one, two, three'
param jsonFormattedData string = '{\'one\': \'a\', \'two\': \'b\'}'

var base64String = base64(stringData)
var base64Object = base64(jsonFormattedData)

output base64Output string = base64String
output toStringOutput string = base64ToString(base64String)
output toJsonOutput object = base64ToJson(base64Object)

Výstup z předchozího příkladu s výchozími hodnotami je:

Name Typ Hodnota
base64Output String b25lLCB0d28sIHRocmVl
toStringOutput String Jedna dva tři
toJsonOutput Object {"one": "a", "two": "b"}

base64ToString

base64ToString(base64Value)

Převede reprezentaci base64 na řetězec.

Obor názvů: sys.

Parametry

Parametr Požaduje se Type Popis
base64Value Ano string Reprezentace base64, která se má převést na řetězec.

Vrácená hodnota

Řetězec převedené hodnoty base64.

Příklady

Následující příklad používá funkci base64ToString k převodu hodnoty base64:

param stringData string = 'one, two, three'
param jsonFormattedData string = '{\'one\': \'a\', \'two\': \'b\'}'

var base64String = base64(stringData)
var base64Object = base64(jsonFormattedData)

output base64Output string = base64String
output toStringOutput string = base64ToString(base64String)
output toJsonOutput object = base64ToJson(base64Object)

Výstup z předchozího příkladu s výchozími hodnotami je:

Name Typ Hodnota
base64Output String b25lLCB0d28sIHRocmVl
toStringOutput String Jedna dva tři
toJsonOutput Object {"one": "a", "two": "b"}

concat

concat(arg1, arg2, arg3, ...)

Kombinuje více řetězcových hodnot a vrací zřetězený řetězec nebo kombinuje více polí a vrací zřetězené pole. Pokud chcete zlepšit čitelnost, použijte místo funkce interpolaci concat() řetězců. V některých případech, například nahrazení řetězce ve víceřádkových řetězcích, ale možná budete muset vrátit zpět použití concat() funkce nebo replace() funkce.

Obor názvů: sys.

Parametry

Parametr Požaduje se Type Popis
arg1 Ano řetězec nebo pole První řetězec nebo pole pro zřetězení
další argumenty No řetězec nebo pole Více řetězců nebo polí v sekvenčním pořadí pro zřetězení

Tato funkce může přijmout libovolný počet argumentů a pro parametry může přijímat řetězce nebo pole. Pro parametry ale nemůžete zadat pole i řetězce. Řetězce jsou zřetězeny pouze s jinými řetězci.

Vrácená hodnota

Řetězec nebo pole zřetězených hodnot.

Příklady

Následující příklad ukazuje porovnání mezi používáním interpolace a použitím concat() funkce. Dva výstupy vrátí stejnou hodnotu.

param prefix string = 'prefix'

output concatOutput string = concat(prefix, 'And', uniqueString(resourceGroup().id))
output interpolationOutput string = '${prefix}And${uniqueString(resourceGroup().id)}'

Výstupy z předchozího příkladu s výchozí hodnotou jsou:

Name Typ Hodnota
concatOutput String prefixAnd5yj4yjf5mbg72
interpolationOutput String prefixAnd5yj4yjf5mbg72

Interpolace se v současné době nepodporuje ve víceřádkových řetězcích. Následující příklad ukazuje porovnání mezi používáním interpolace a použitím concat() funkce.

var blocked = 'BLOCKED'

output concatOutput string = concat('''interpolation
is ''', blocked)
output interpolationOutput string = '''interpolation
is ${blocked}'''

Výstup z předchozího příkladu s výchozími hodnotami je:

Name Typ Hodnota
concatOutput String interpolace\nis BLOCKED
interpolationOutput String interpolace\nis ${blocked}

obsahuje

contains(container, itemToFind)

Kontroluje, zda pole obsahuje hodnotu, objekt obsahuje klíč nebo řetězec obsahuje podřetězce. Porovnání řetězců se rozlišují malá a velká písmena. Při testování, pokud objekt obsahuje klíč, je však porovnání nerozlišující malá a velká písmena.

Obor názvů: sys.

Parametry

Parametr Požaduje se Type Popis
kontejner Ano pole, objekt nebo řetězec Hodnota, která obsahuje hodnotu, kterou chcete najít.
itemToFind Ano řetězec nebo int Hodnota, kterou chcete najít.

Vrácená hodnota

Trueje-li položka nalezena; v opačném případě . False

Příklady

Následující příklad ukazuje, jak používat obsahuje různé typy:

param stringToTest string = 'OneTwoThree'
param objectToTest object = {
  one: 'a'
  two: 'b'
  three: 'c'
}
param arrayToTest array = [
  'one'
  'two'
  'three'
]

output stringTrue bool = contains(stringToTest, 'e')
output stringFalse bool = contains(stringToTest, 'z')
output objectTrue bool = contains(objectToTest, 'one')
output objectFalse bool = contains(objectToTest, 'a')
output arrayTrue bool = contains(arrayToTest, 'three')
output arrayFalse bool = contains(arrayToTest, 'four')

Výstup z předchozího příkladu s výchozími hodnotami je:

Name Typ Hodnota
stringTrue Bool True
stringFalse Bool False
objectTrue Bool True
objectFalse Bool False
arrayTrue Bool True
arrayFalse Bool False

identifikátor dataURI

dataUri(stringToConvert)

Převede hodnotu na identifikátor URI dat.

Obor názvů: sys.

Parametry

Parametr Požaduje se Type Popis
stringToConvert Ano string Hodnota, která se má převést na identifikátor URI dat.

Vrácená hodnota

Řetězec formátovaný jako identifikátor URI dat.

Příklady

Následující příklad převede hodnotu na identifikátor URI dat a převede identifikátor URI dat na řetězec:

param stringToTest string = 'Hello'
param dataFormattedString string = 'data:;base64,SGVsbG8sIFdvcmxkIQ=='

output dataUriOutput string = dataUri(stringToTest)
output toStringOutput string = dataUriToString(dataFormattedString)

Výstup z předchozího příkladu s výchozími hodnotami je:

Name Typ Hodnota
dataUriOutput String data:text/plain; charset=utf8; base64,SGVsbG8=
toStringOutput String Hello, World!

dataUriToString

dataUriToString(dataUriToConvert)

Převede hodnotu formátovanou datovým identifikátorem URI na řetězec.

Obor názvů: sys.

Parametry

Parametr Požaduje se Type Popis
dataUriToConvert Ano string Hodnota identifikátoru URI dat, která se má převést.

Vrácená hodnota

Řetězec obsahující převedenou hodnotu.

Příklady

Následující příklad převede hodnotu na identifikátor URI dat a převede identifikátor URI dat na řetězec:

param stringToTest string = 'Hello'
param dataFormattedString string = 'data:;base64,SGVsbG8sIFdvcmxkIQ=='

output dataUriOutput string = dataUri(stringToTest)
output toStringOutput string = dataUriToString(dataFormattedString)

Výstup z předchozího příkladu s výchozími hodnotami je:

Name Typ Hodnota
dataUriOutput String data:text/plain; charset=utf8; base64,SGVsbG8=
toStringOutput String Hello, World!

empty

empty(itemToTest)

Určuje, zda je pole, objekt nebo řetězec prázdné.

Obor názvů: sys.

Parametry

Parametr Požaduje se Type Popis
itemToTest Ano pole, objekt nebo řetězec Hodnota, která se má zkontrolovat, jestli je prázdná.

Vrácená hodnota

Vrátí True , pokud je hodnota prázdná, Falsejinak .

Příklady

Následující příklad zkontroluje, zda pole, objekt a řetězec jsou prázdné.

param testArray array = []
param testObject object = {}
param testString string = ''

output arrayEmpty bool = empty(testArray)
output objectEmpty bool = empty(testObject)
output stringEmpty bool = empty(testString)

Výstup z předchozího příkladu s výchozími hodnotami je:

Name Typ Hodnota
arrayEmpty Bool True
objectEmpty Bool True
stringEmpty Bool True

endsWith

endsWith(stringToSearch, stringToFind)

Určuje, zda řetězec končí hodnotou. Porovnání nerozlišuje malá a velká písmena.

Obor názvů: sys.

Parametry

Parametr Požaduje se Type Popis
stringToSearch Ano string Hodnota obsahující položku, kterou chcete najít.
stringToFind Ano string Hodnota, kterou chcete najít.

Vrácená hodnota

Truepokud poslední znak nebo znaky řetězce odpovídají hodnotě; v opačném případě . False

Příklady

Následující příklad ukazuje, jak používat funkce startsWith a endsWith:

output startsTrue bool = startsWith('abcdef', 'ab')
output startsCapTrue bool = startsWith('abcdef', 'A')
output startsFalse bool = startsWith('abcdef', 'e')
output endsTrue bool = endsWith('abcdef', 'ef')
output endsCapTrue bool = endsWith('abcdef', 'F')
output endsFalse bool = endsWith('abcdef', 'e')

Výstup z předchozího příkladu s výchozími hodnotami je:

Name Typ Hodnota
startsTrue Bool True
startsCapTrue Bool True
startsFalse Bool False
endTrue Bool True
endsCapTrue Bool True
endFalse Bool False

1\.

first(arg1)

Vrátí první znak řetězce nebo první prvek pole. Pokud je zadaný prázdný řetězec, výsledkem funkce bude prázdný řetězec. V případě prázdného pole vrátí nullfunkce .

Obor názvů: sys.

Parametry

Parametr Požaduje se Type Popis
arg1 Ano pole nebo řetězec Hodnota pro načtení prvního prvku nebo znaku.

Vrácená hodnota

Řetězec prvního znaku nebo typ (řetězec, int, pole nebo objekt) prvního prvku v poli.

Příklady

Následující příklad ukazuje, jak použít první funkci s polem a řetězcem.

param arrayToTest array = [
  'one'
  'two'
  'three'
]

output arrayOutput string = first(arrayToTest)
output stringOutput string = first('One Two Three')

Výstup z předchozího příkladu s výchozími hodnotami je:

Name Typ Hodnota
arrayOutput String jeden
stringOutput String O

format

format(formatString, arg1, arg2, ...)

Vytvoří formátovaný řetězec ze vstupních hodnot.

Obor názvů: sys.

Parametry

Parametr Požaduje se Type Popis
formatString Ano string Složený formátovací řetězec.
arg1 Ano řetězec, celé číslo nebo logická hodnota Hodnota, která se má zahrnout do formátovaného řetězce.
další argumenty No řetězec, celé číslo nebo logická hodnota Další hodnoty, které se mají zahrnout do formátovaného řetězce

Poznámky

Pomocí této funkce můžete formátovat řetězec v souboru Bicep. Používá stejné možnosti formátování jako metoda System.String.Format v .NET.

Příklady

Následující příklad ukazuje, jak používat funkci formátu.

param greeting string = 'Hello'
param name string = 'User'
param numberToFormat int = 8175133
param objectToFormat object = { prop: 'value' }

output formatTest string = format('{0}, {1}. Formatted number: {2:N0}', greeting, name, numberToFormat)
output formatObject string = format('objectToFormat: {0}', objectToFormat)

Výstup z předchozího příkladu s výchozími hodnotami je:

Name Typ Hodnota
formatTest String Hello, User. Formatted number: 8,175,133
formatObject String objectToFormat: {'prop':'value'}

guid

guid(baseString, ...)

Vytvoří hodnotu ve formátu globálně jedinečného identifikátoru na základě hodnot zadaných jako parametry.

Obor názvů: sys.

Parametry

Parametr Požaduje se Type Popis
baseString Ano string Hodnota použitá ve funkci hash k vytvoření identifikátoru GUID.
další parametry podle potřeby No string Můžete přidat tolik řetězců, kolik potřebujete k vytvoření hodnoty, která určuje úroveň jedinečnosti.

Poznámky

Tato funkce je užitečná, když potřebujete vytvořit hodnotu ve formátu globálně jedinečného identifikátoru. Zadáte hodnoty parametrů, které omezují rozsah jedinečnosti výsledku. Můžete určit, jestli je název jedinečný až do předplatného, skupiny prostředků nebo nasazení.

Vrácená hodnota není náhodný řetězec, ale spíše výsledek funkce hash u parametrů. Vrácená hodnota je 36 znaků dlouhá. Není globálně jedinečný. Pokud chcete vytvořit nový identifikátor GUID, který není založený na této hodnotě hash parametrů, použijte funkci newGuid .

Poznámka:

Pořadí parametrů ovlivňuje vrácenou hodnotu. Příklad:

guid('hello', 'world') a guid('world', 'hello')

nevrací stejnou hodnotu.

Následující příklady ukazují, jak pomocí identifikátoru GUID vytvořit jedinečnou hodnotu pro běžně používané úrovně.

Jedinečný obor předplatného

guid(subscription().subscriptionId)

Jedinečný obor pro skupinu prostředků

guid(resourceGroup().id)

Jedinečný obor nasazení pro skupinu prostředků

guid(resourceGroup().id, deployment().name)

Funkce guid implementuje algoritmus z RFC 4122 §4.3. Původní zdroj lze najít v GuidUtility s některými úpravami.

Vrácená hodnota

Řetězec obsahující 36 znaků ve formátu globálně jedinečného identifikátoru.

Příklady

Následující příklad vrátí výsledky z guid:

output guidPerSubscription string = guid(subscription().subscriptionId)
output guidPerResourceGroup string = guid(resourceGroup().id)
output guidPerDeployment string = guid(resourceGroup().id, deployment().name)

indexOf

indexOf(stringToSearch, stringToFind)

Vrátí první pozici hodnoty v řetězci. Porovnání nerozlišuje malá a velká písmena.

Obor názvů: sys.

Parametry

Parametr Požaduje se Type Popis
stringToSearch Ano string Hodnota obsahující položku, kterou chcete najít.
stringToFind Ano string Hodnota, kterou chcete najít.

Vrácená hodnota

Celé číslo, které představuje pozici položky, která se má najít. Hodnota je založená na nule. Pokud se položka nenajde, vrátí se hodnota -1.

Příklady

Následující příklad ukazuje, jak používat funkce indexOf a lastIndexOf:

output firstT int = indexOf('test', 't')
output lastT int = lastIndexOf('test', 't')
output firstString int = indexOf('abcdef', 'CD')
output lastString int = lastIndexOf('abcdef', 'AB')
output notFound int = indexOf('abcdef', 'z')

Výstup z předchozího příkladu s výchozími hodnotami je:

Name Typ Hodnota
firstT Int 0
lastT Int 3
firstString Int 2
lastString Int 0
notFound Int -1

join

join(inputArray, delimiter)

Spojí pole řetězců do jednoho řetězce odděleného oddělovačem.

Obor názvů: sys.

Parametry

Parametr Požaduje se Type Popis
inputArray Ano Pole řetězce. Pole řetězců, které se mají spojit.
oddělovač Ano Oddělovač, který se má použít k rozdělení řetězce.

Vrácená hodnota

Řetězec.

Příklady

Následující příklad spojí vstupní pole řetězců s řetězci oddělenými čárkami nebo středníkem.

var arrayString = [
  'one'
  'two'
  'three'
]

output firstOutput string = join(arrayString, ',')
output secondOutput string = join(arrayString, ';')

Výstup z předchozího příkladu s výchozími hodnotami je:

Name Typ Hodnota
firstOutput String "jedna,dvě,tři"
secondOutput String "jeden; Dva; tři"

Tato funkce vyžaduje rozhraní příkazového řádku Bicep verze 0.8.X nebo vyšší.

json

json(arg1)

Převede platný řetězec JSON na datový typ JSON. Další informace najdete v tématu funkce JSON.

Obor názvů: sys.

Poslední

last(arg1)

Vrátí poslední znak řetězce nebo poslední prvek pole.

Obor názvů: sys.

Parametry

Parametr Požaduje se Type Popis
arg1 Ano pole nebo řetězec Hodnota pro načtení posledního prvku nebo znaku.

Vrácená hodnota

Řetězec posledního znaku nebo typ (řetězec, int, pole nebo objekt) posledního prvku v poli.

Příklady

Následující příklad ukazuje, jak použít poslední funkci s polem a řetězcem.

param arrayToTest array = [
  'one'
  'two'
  'three'
]

output arrayOutput string = last(arrayToTest)
output stringOutput string = last('One Two Three')

Výstup z předchozího příkladu s výchozími hodnotami je:

Name Typ Hodnota
arrayOutput String tři
stringOutput String e

lastIndexOf

lastIndexOf(stringToSearch, stringToFind)

Vrátí poslední pozici hodnoty v řetězci. Porovnání nerozlišuje malá a velká písmena.

Obor názvů: sys.

Parametry

Parametr Požaduje se Type Popis
stringToSearch Ano string Hodnota obsahující položku, kterou chcete najít.
stringToFind Ano string Hodnota, kterou chcete najít.

Vrácená hodnota

Celé číslo, které představuje poslední pozici položky, která se má najít. Hodnota je založená na nule. Pokud se položka nenajde, vrátí se hodnota -1.

Příklady

Následující příklad ukazuje, jak používat funkce indexOf lastIndexOf :

output firstT int = indexOf('test', 't')
output lastT int = lastIndexOf('test', 't')
output firstString int = indexOf('abcdef', 'CD')
output lastString int = lastIndexOf('abcdef', 'AB')
output notFound int = indexOf('abcdef', 'z')

Výstup z předchozího příkladu s výchozími hodnotami je:

Name Typ Hodnota
firstT Int 0
lastT Int 3
firstString Int 2
lastString Int 0
notFound Int -1

length

length(string)

Vrátí počet znaků v řetězci, prvky v poli nebo vlastnosti kořenové úrovně v objektu.

Obor názvů: sys.

Parametry

Parametr Požaduje se Type Popis
arg1 Ano pole, řetězec nebo objekt Pole, které se má použít pro získání počtu prvků, řetězec, který se má použít pro získání počtu znaků, nebo objekt, který se má použít pro získání počtu vlastností kořenové úrovně.

Vrácená hodnota

Int.

Příklady

Následující příklad ukazuje, jak použít délku s polem a řetězcem:

param arrayToTest array = [
  'one'
  'two'
  'three'
]
param stringToTest string = 'One Two Three'
param objectToTest object = {
  propA: 'one'
  propB: 'two'
  propC: 'three'
  propD: {
    'propD-1': 'sub'
    'propD-2': 'sub'
  }
}

output arrayLength int = length(arrayToTest)
output stringLength int = length(stringToTest)
output objectLength int = length(objectToTest)

Výstup z předchozího příkladu s výchozími hodnotami je:

Name Typ Hodnota
arrayLength Int 3
stringLength Int 13
objectLength Int 4

newGuid

newGuid()

Vrátí hodnotu ve formátu globálně jedinečného identifikátoru. Tuto funkci lze použít pouze ve výchozí hodnotě parametru.

Obor názvů: sys.

Poznámky

Tuto funkci můžete použít pouze ve výrazu pro výchozí hodnotu parametru. Použití této funkce kdekoli jinde v souboru Bicep vrátí chybu. Funkce není povolená v jiných částech souboru Bicep, protože pokaždé, když se volá, vrátí jinou hodnotu. Nasazení stejného souboru Bicep se stejnými parametry by spolehlivě nezískuilo stejné výsledky.

Nová funkceGuid se liší od funkce GUID , protože nepřebírají žádné parametry. Když zavoláte identifikátor GUID se stejnými parametry, vrátí pokaždé stejný identifikátor. Pokud potřebujete spolehlivě vygenerovat stejný identifikátor GUID pro konkrétní prostředí, použijte identifikátor GUID. NewGuid použijte, když potřebujete pokaždé jiný identifikátor, například nasazení prostředků do testovacího prostředí.

Nová funkceGuid používá strukturu GUID v rozhraní .NET Framework k vygenerování globálně jedinečného identifikátoru.

Pokud použijete možnost opětovného nasazení dříve úspěšného nasazení a dřívější nasazení obsahuje parametr, který používá newGuid, parametr se znovu nevyhodnotuje. Místo toho se hodnota parametru z předchozího nasazení automaticky znovu použije v nasazení vrácení zpět.

V testovacím prostředí možná budete muset opakovaně nasazovat prostředky, které žijí jen na krátkou dobu. Místo vytváření jedinečných názvů můžete k vytvoření jedinečných názvů použít newGuid s uniqueString .

Při opětovném nasazení souboru Bicep, který pro výchozí hodnotu spoléhá na funkci newGuid, buďte opatrní. Když znovu nasadíte parametr a nezadáte hodnotu parametru, funkce se znovu zhodnocuje. Pokud chcete místo vytvoření nového prostředku aktualizovat existující prostředek, předejte hodnotu parametru z předchozího nasazení.

Vrácená hodnota

Řetězec obsahující 36 znaků ve formátu globálně jedinečného identifikátoru.

Příklady

Následující příklad ukazuje parametr s novým identifikátorem.

param guidValue string = newGuid()

output guidOutput string = guidValue

Výstup z předchozího příkladu se pro každé nasazení liší, ale bude vypadat nějak takto:

Name Typ Hodnota
GuidOutput string b76a51fc-bd72-4a77-b9a2-3c29e7d2e551

Následující příklad používá funkci newGuid k vytvoření jedinečného názvu pro účet úložiště. Tento soubor Bicep může fungovat pro testovací prostředí, ve kterém existuje účet úložiště na krátkou dobu a není znovu nasazený.

param guidValue string = newGuid()

var storageName = 'storage${uniqueString(guidValue)}'

resource myStorage 'Microsoft.Storage/storageAccounts@2023-04-01' = {
  name: storageName
  location: 'West US'
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
  properties: {}
}

output nameOutput string = storageName

Výstup z předchozího příkladu se pro každé nasazení liší, ale bude vypadat nějak takto:

Name Typ Hodnota
nameOutput string storagenziwvyru7uxie

padLeft

padLeft(valueToPad, totalLength, paddingCharacter)

Vrátí řetězec zarovnaný doprava přidáním znaků doleva, dokud nedosáhne celkové zadané délky.

Obor názvů: sys.

Parametry

Parametr Požaduje se Type Popis
valueToPad Ano řetězec nebo int Hodnota, která se má zarovnat doprava.
totalLength Ano int Celkový počet znaků ve vráceném řetězci.
paddingCharacter No jeden znak Znak, který se má použít pro odsazení doleva, dokud nedosáhnete celkové délky. Výchozí hodnota je mezera.

Pokud je původní řetězec delší než počet znaků na panel, nepřidají se žádné znaky.

Vrácená hodnota

Řetězec s alespoň počtem zadaných znaků.

Příklady

Následující příklad ukazuje, jak hodnotu parametru poskytovanou uživatelem přidat nulu, dokud nedosáhne celkového počtu znaků.

param testString string = '123'

output stringOutput string = padLeft(testString, 10, '0')

Výstup z předchozího příkladu s výchozími hodnotami je:

Name Typ Hodnota
stringOutput String 0000000123

replace

replace(originalString, oldString, newString)

Vrátí nový řetězec se všemi instancemi jednoho řetězce nahrazeným jiným řetězcem.

Obor názvů: sys.

Parametry

Parametr Požaduje se Type Popis
originalString Ano string Hodnota, která má všechny instance jednoho řetězce nahrazen jiným řetězcem.
oldString Ano string Řetězec, který se má odebrat z původního řetězce.
newString Ano string Řetězec, který se má přidat místo odebraného řetězce.

Vrácená hodnota

Řetězec s nahrazenými znaky.

Příklady

Následující příklad ukazuje, jak odebrat všechny pomlčky z uživatelem poskytnutého řetězce a jak nahradit část řetězce jiným řetězcem.

param testString string = '123-123-1234'

output firstOutput string = replace(testString, '-', '')
output secondOutput string = replace(testString, '1234', 'xxxx')

Výstup z předchozího příkladu s výchozími hodnotami je:

Name Typ Hodnota
firstOutput String 1231231234
secondOutput String 123-123-xxxx

skip

skip(originalValue, numberToSkip)

Vrátí řetězec se všemi znaky za zadaným počtem znaků nebo pole se všemi prvky za zadaným počtem prvků.

Obor názvů: sys.

Parametry

Parametr Požaduje se Type Popis
originalValue Ano pole nebo řetězec Pole nebo řetězec, které se mají použít pro přeskočení.
numberToSkip Ano int Počet prvků nebo znaků, které chcete přeskočit. Pokud je tato hodnota 0 nebo menší, vrátí se všechny prvky nebo znaky v hodnotě. Pokud je větší než délka pole nebo řetězce, vrátí se prázdné pole nebo řetězec.

Vrácená hodnota

Pole nebo řetězec.

Příklady

Následující příklad přeskočí zadaný počet prvků v poli a zadaný počet znaků v řetězci.

param testArray array = [
  'one'
  'two'
  'three'
]
param elementsToSkip int = 2
param testString string = 'one two three'
param charactersToSkip int = 4

output arrayOutput array = skip(testArray, elementsToSkip)
output stringOutput string = skip(testString, charactersToSkip)

Výstup z předchozího příkladu s výchozími hodnotami je:

Name Typ Hodnota
arrayOutput Pole ["tři"]
stringOutput String dva tři

split

split(inputString, delimiter)

Vrátí pole řetězců, které obsahují podřetězce vstupního řetězce, které jsou oddělené zadanými oddělovači.

Obor názvů: sys.

Parametry

Parametr Požaduje se Type Popis
inputString Ano string Řetězec, který chcete rozdělit.
oddělovač Ano řetězec nebo pole řetězců Oddělovač, který se má použít k rozdělení řetězce.

Vrácená hodnota

Pole řetězců.

Příklady

Následující příklad rozdělí vstupní řetězec čárkou a buď čárkou, nebo středníkem.

param firstString string = 'one,two,three'
param secondString string = 'one;two,three'

var delimiters = [
  ','
  ';'
]

output firstOutput array = split(firstString, ',')
output secondOutput array = split(secondString, delimiters)

Výstup z předchozího příkladu s výchozími hodnotami je:

Name Typ Hodnota
firstOutput Pole ["one", "two", "three"]
secondOutput Pole ["one", "two", "three"]

startsWith

startsWith(stringToSearch, stringToFind)

Určuje, zda řetězec začíná hodnotou. Porovnání nerozlišuje malá a velká písmena.

Obor názvů: sys.

Parametry

Parametr Požaduje se Type Popis
stringToSearch Ano string Hodnota obsahující položku, kterou chcete najít.
stringToFind Ano string Hodnota, kterou chcete najít.

Vrácená hodnota

Truepokud první znak nebo znaky řetězce odpovídají hodnotě; v opačném případě . False

Příklady

Následující příklad ukazuje, jak používat funkce startsWith a endsWith:

output startsTrue bool = startsWith('abcdef', 'ab')
output startsCapTrue bool = startsWith('abcdef', 'A')
output startsFalse bool = startsWith('abcdef', 'e')
output endsTrue bool = endsWith('abcdef', 'ef')
output endsCapTrue bool = endsWith('abcdef', 'F')
output endsFalse bool = endsWith('abcdef', 'e')

Výstup z předchozího příkladu s výchozími hodnotami je:

Name Typ Hodnota
startsTrue Bool True
startsCapTrue Bool True
startsFalse Bool False
endTrue Bool True
endsCapTrue Bool True
endFalse Bool False

string

string(valueToConvert)

Převede zadanou hodnotu na řetězec. Řetězce se vrátí tak, jak jsou. Jiné typy se převedou na ekvivalentní reprezentaci JSON. Pokud potřebujete převést řetězec na JSON, tj. uvozovky nebo řídicí znaky, můžete použít substring(string([value]), 1, length(string([value]) - 2).

Obor názvů: sys.

Parametry

Parametr Požaduje se Type Popis
valueToConvert Ano Všechny Hodnota, která se má převést na řetězec. Libovolný typ hodnoty lze převést, včetně objektů a polí.

Vrácená hodnota

Řetězec převedené hodnoty.

Příklady

Následující příklad ukazuje, jak převést různé typy hodnot na řetězce:

param testObject object = {
  valueA: 10
  valueB: 'Example Text'
}
param testArray array = [
  '\'a\''
  '"b"'
  '\\c\\'
]
param testInt int = 5
param testString string = 'foo " \' \\'

output objectOutput string = string(testObject)
output arrayOutput string = string(testArray)
output intOutput string = string(testInt)
output stringOutput string = string(testString)
output stringEscapedOutput string = substring(string([testString]), 1, length(string([testString])) - 2)

Výstup z předchozího příkladu s výchozími hodnotami je:

Name Typ Hodnota
objectOutput String {"valueA":10,"valueB":"Example Text"}
arrayOutput String ["'a'","\"b\"","\\c\\"]
intOutput String 5
stringOutput String foo " ' \
stringEscapedOutput String "foo \" ' \\"

podřetězec

substring(stringToParse, startIndex, length)

Vrátí podřetěr, který začíná na zadané pozici znaku a obsahuje zadaný počet znaků.

Obor názvů: sys.

Parametry

Parametr Požaduje se Type Popis
stringToParse Ano string Původní řetězec, ze kterého se extrahuje podřetězce.
startIndex No int Pozice počátečního znaku založeného na nule pro podřetězdce.
length No int Počet znaků podřetědce. Musí odkazovat na umístění v řetězci. Musí být nula nebo větší. Pokud tento argument vynecháte, vrátí se zbytek řetězce od počáteční pozice.

Vrácená hodnota

Podřetětěr. Nebo prázdný řetězec, pokud je délka nula.

Poznámky

Funkce selže, pokud podřetězce přesahuje konec řetězce nebo pokud je délka menší než nula. Následující příklad selže s chybou "Parametry indexu a délky musí odkazovat na umístění v řetězci. Parametr indexu: 0, parametr length: 11, délka parametru řetězce: 10.

param inputString string = '1234567890'

var prefix = substring(inputString, 0, 11)

Příklady

Následující příklad extrahuje podřetěr z parametru.

param testString string = 'one two three'
output substringOutput string = substring(testString, 4, 3)

Výstup z předchozího příkladu s výchozími hodnotami je:

Name Typ Hodnota
substringOutput String dva

take

take(originalValue, numberToTake)

Vrátí řetězec se zadaným počtem znaků od začátku řetězce nebo pole se zadaným počtem prvků od začátku pole.

Obor názvů: sys.

Parametry

Parametr Požaduje se Type Popis
originalValue Ano pole nebo řetězec Pole nebo řetězec, ze které mají být prvky odebrány.
numberToTake Ano int Počet prvků nebo znaků, které se mají vzít. Pokud je tato hodnota 0 nebo menší, vrátí se prázdné pole nebo řetězec. Pokud je větší než délka daného pole nebo řetězce, vrátí se všechny prvky v poli nebo řetězci.

Vrácená hodnota

Pole nebo řetězec.

Příklady

Následující příklad přebírá zadaný počet prvků z pole a znaky z řetězce.

param testArray array = [
  'one'
  'two'
  'three'
]
param elementsToTake int = 2
param testString string = 'one two three'
param charactersToTake int = 2

output arrayOutput array = take(testArray, elementsToTake)
output stringOutput string = take(testString, charactersToTake)

Výstup z předchozího příkladu s výchozími hodnotami je:

Name Typ Hodnota
arrayOutput Pole ["one", "two"]
stringOutput String on

toLower

toLower(stringToChange)

Převede zadaný řetězec na malá písmena.

Obor názvů: sys.

Parametry

Parametr Požaduje se Type Popis
stringToChange Ano string Hodnota, která se má převést na malá písmena.

Vrácená hodnota

Řetězec byl převeden na malá písmena.

Příklady

Následující příklad převede hodnotu parametru na malá a velká písmena.

param testString string = 'One Two Three'

output toLowerOutput string = toLower(testString)
output toUpperOutput string = toUpper(testString)

Výstup z předchozího příkladu s výchozími hodnotami je:

Name Typ Hodnota
toLowerOutput String Jedna dva tři
toUpperOutput String JEDNA DVA TŘI

toUpper

toUpper(stringToChange)

Převede zadaný řetězec na velká písmena.

Obor názvů: sys.

Parametry

Parametr Požaduje se Type Popis
stringToChange Ano string Hodnota, která se má převést na velká písmena.

Vrácená hodnota

Řetězec byl převeden na velká písmena.

Příklady

Následující příklad převede hodnotu parametru na malá a velká písmena.

param testString string = 'One Two Three'

output toLowerOutput string = toLower(testString)
output toUpperOutput string = toUpper(testString)

Výstup z předchozího příkladu s výchozími hodnotami je:

Name Typ Hodnota
toLowerOutput String Jedna dva tři
toUpperOutput String JEDNA DVA TŘI

zastřihnout

trim(stringToTrim)

Odebere všechny počáteční a koncové prázdné znaky ze zadaného řetězce.

Obor názvů: sys.

Parametry

Parametr Požaduje se Type Popis
stringToTrim Ano string Hodnota, kterou chcete oříznout.

Vrácená hodnota

Řetězec bez úvodních a koncových prázdných znaků.

Příklady

Následující příklad oříznou prázdné znaky z parametru.

param testString string = '    one two three   '

output return string = trim(testString)

Výstup z předchozího příkladu s výchozími hodnotami je:

Name Typ Hodnota
return String Jedna dva tři

uniqueString

uniqueString(baseString, ...)

Vytvoří deterministický hashovací řetězec založený na hodnotách zadaných jako parametry.

Obor názvů: sys.

Parametry

Parametr Požaduje se Type Popis
baseString Ano string Hodnota použitá ve funkci hash k vytvoření jedinečného řetězce.
další parametry podle potřeby No string Můžete přidat tolik řetězců, kolik potřebujete k vytvoření hodnoty, která určuje úroveň jedinečnosti.

Poznámky

Tato funkce je užitečná, když potřebujete vytvořit jedinečný název prostředku. Zadáte hodnoty parametrů, které omezují rozsah jedinečnosti výsledku. Můžete určit, jestli je název jedinečný až do předplatného, skupiny prostředků nebo nasazení.

Vrácená hodnota není náhodný řetězec, ale spíše výsledek funkce hash. Vrácená hodnota je dlouhá 13 znaků. Není globálně jedinečný. Můžete zkombinovat hodnotu s předponou z vaší konvence vytváření názvů a vytvořit smysluplný název. Následující příklad ukazuje formát vrácené hodnoty. Skutečná hodnota se liší podle zadaných parametrů.

tcvhiyu5h2o5o

Následující příklady ukazují, jak použít uniqueString k vytvoření jedinečné hodnoty pro běžně používané úrovně.

Jedinečný obor předplatného

uniqueString(subscription().subscriptionId)

Jedinečný obor pro skupinu prostředků

uniqueString(resourceGroup().id)

Jedinečný obor nasazení pro skupinu prostředků

uniqueString(resourceGroup().id, deployment().name)

Následující příklad ukazuje, jak vytvořit jedinečný název pro účet úložiště na základě vaší skupiny prostředků. V rámci skupiny prostředků není název jedinečný, pokud je vytvořený stejným způsobem.

resource mystorage 'Microsoft.Storage/storageAccounts@2023-04-01' = {
  name: 'storage${uniqueString(resourceGroup().id)}'
  ...
}

Pokud potřebujete vytvořit nový jedinečný název pokaždé, když nasadíte soubor Bicep a nechcete aktualizovat prostředek, můžete použít funkci utcNow s uniqueString. Tento přístup můžete použít v testovacím prostředí. Příklad: viz utcNow. Všimněte si, že funkci UTCNow lze použít pouze ve výrazu pro výchozí hodnotu parametru.

Vrácená hodnota

Řetězec obsahující 13 znaků.

Příklady

Následující příklad vrátí výsledky z uniquestring:

output uniqueRG string = uniqueString(resourceGroup().id)
output uniqueDeploy string = uniqueString(resourceGroup().id, deployment().name)

uri

uri(baseUri, relativeUri)

Vytvoří absolutní identifikátor URI kombinací baseUri a řetězce relativeUri.

Obor názvů: sys.

Parametry

Parametr Požaduje se Type Popis
baseUri Ano string Základní řetězec identifikátoru URI. Dbejte na to, abyste sledovali chování týkající se zpracování koncového lomítka (/), jak je popsáno v následující tabulce.
relativeUri Ano string Relativní řetězec identifikátoru URI, který se má přidat do základního řetězce identifikátoru URI.
  • Pokud baseUri končí koncové lomítko, výsledek je jednoduše baseUri následovaný relativeUri. Pokud relativeUri také začíná počáteční lomítko, koncové lomítko a počáteční lomítko se zkombinuje do jednoho.

  • Pokud baseUri nekončí koncové lomítko, stane se jedna ze dvou věcí.

    • Pokud baseUri nemá vůbec žádná lomítka (kromě "/" u přední strany), je výsledek jednoduše baseUri následovaný relativeUri.

    • Pokud baseUri má některá lomítka, ale nekončí lomítkem, vše od posledního lomítka se odebere baseUri a výsledek baseUri následuje relativeUri.

Několik příkladů:

uri('http://contoso.org/firstpath', 'myscript.sh') -> http://contoso.org/myscript.sh
uri('http://contoso.org/firstpath/', 'myscript.sh') -> http://contoso.org/firstpath/myscript.sh
uri('http://contoso.org/firstpath/', '/myscript.sh') -> http://contoso.org/firstpath/myscript.sh
uri('http://contoso.org/firstpath/azuredeploy.json', 'myscript.sh') -> http://contoso.org/firstpath/myscript.sh
uri('http://contoso.org/firstpath/azuredeploy.json/', 'myscript.sh') -> http://contoso.org/firstpath/azuredeploy.json/myscript.sh

Úplné podrobnosti baseUri a relativeUri parametry jsou vyřešeny podle dokumentu RFC 3986 oddílu 5.

Vrácená hodnota

Řetězec představující absolutní identifikátor URI pro základní a relativní hodnoty.

Příklady

Následující příklad ukazuje, jak používat uri, uriComponent a uriComponentToString:

var uriFormat = uri('http://contoso.com/resources/', 'nested/azuredeploy.json')
var uriEncoded = uriComponent(uriFormat)

output uriOutput string = uriFormat
output componentOutput string = uriEncoded
output toStringOutput string = uriComponentToString(uriEncoded)

Výstup z předchozího příkladu s výchozími hodnotami je:

Name Typ Hodnota
uriOutput String http://contoso.com/resources/nested/azuredeploy.json
componentOutput String http%3A%2F%2Fcontoso.com%2Fresources%2Fnested%2Fazuredeploy.json
toStringOutput String http://contoso.com/resources/nested/azuredeploy.json

uriComponent

uricomponent(stringToEncode)

Zakóduje identifikátor URI.

Obor názvů: sys.

Parametry

Parametr Požaduje se Type Popis
stringToEncode Ano string Hodnota, která se má kódovat.

Vrácená hodnota

Řetězec s hodnotou kódovanou identifikátorem URI.

Příklady

Následující příklad ukazuje, jak používat uri, uriComponent a uriComponentToString:

var uriFormat = uri('http://contoso.com/resources/', 'nested/azuredeploy.json')
var uriEncoded = uriComponent(uriFormat)

output uriOutput string = uriFormat
output componentOutput string = uriEncoded
output toStringOutput string = uriComponentToString(uriEncoded)

Výstup z předchozího příkladu s výchozími hodnotami je:

Name Typ Hodnota
uriOutput String http://contoso.com/resources/nested/azuredeploy.json
componentOutput String http%3A%2F%2Fcontoso.com%2Fresources%2Fnested%2Fazuredeploy.json
toStringOutput String http://contoso.com/resources/nested/azuredeploy.json

uriComponentToString

uriComponentToString(uriEncodedString)

Vrátí řetězec s hodnotou zakódovanou identifikátorem URI.

Obor názvů: sys.

Parametry

Parametr Požaduje se Type Popis
uriEncodedString Ano string Zakódovaná hodnota identifikátoru URI, která se má převést na řetězec.

Vrácená hodnota

Dekódovaný řetězec kódované hodnoty identifikátoru URI.

Příklady

Následující příklad ukazuje, jak používat uri, uriComponent a uriComponentToString:

var uriFormat = uri('http://contoso.com/resources/', 'nested/azuredeploy.json')
var uriEncoded = uriComponent(uriFormat)

output uriOutput string = uriFormat
output componentOutput string = uriEncoded
output toStringOutput string = uriComponentToString(uriEncoded)

Výstup z předchozího příkladu s výchozími hodnotami je:

Name Typ Hodnota
uriOutput String http://contoso.com/resources/nested/azuredeploy.json
componentOutput String http%3A%2F%2Fcontoso.com%2Fresources%2Fnested%2Fazuredeploy.json
toStringOutput String http://contoso.com/resources/nested/azuredeploy.json

Další kroky