Json Azure ARM:删除无效字符

Json Azure ARM:删除无效字符,json,azure,azure-resource-manager,arm-template,Json,Azure,Azure Resource Manager,Arm Template,我正在寻找一种简单的方法来替换字符串中的所有非字母数字字符(只是试图防止用户为资源输入无效字符) 我的工作代码如下,但我认为它非常混乱,因为我必须为我要删除的每个字符创建一个新变量 { "parameters": { "userString": { "type": "string" } }, "variables": { "removeChar1": "[replace(parameters('userString'), '-', '')]",

我正在寻找一种简单的方法来替换字符串中的所有非字母数字字符(只是试图防止用户为资源输入无效字符)

我的工作代码如下,但我认为它非常混乱,因为我必须为我要删除的每个字符创建一个新变量

{
  "parameters": {
    "userString": {
    "type": "string"
    }
  },
  "variables": {
    "removeChar1": "[replace(parameters('userString'), '-', '')]",
    "removeChar2": "[replace(variables('removeChar1'), ' ', '')]",
    "removeChar3": "[replace(variables('removeChar2'), '^', '')]",
    "cleanString": "[replace(variables('removeChar3'), ')', '')]"
  },
  "resources": [
  ],
  "outputs": {
    "cleanStringOutput": {
      "type": "string",
      "value": "[variables('cleanString')]"
    }
  }
}
有更好的方法吗


谢谢

不,replace函数只进行精确搜索,所以这是唯一的方法。“备选方案”包括:在模板中创建一个函数,该函数正好可以做到这一点,但您可以调用您的函数(看起来更干净+可重用),创建一个azure函数并调用该函数,该函数的输出将是一个arm模板,其输出字符串替换了所有字符


不,替换功能只进行精确搜索,因此这是唯一的方法。“备选方案”包括:在模板中创建一个函数,该函数正好可以做到这一点,但您可以调用您的函数(看起来更干净+可重用),创建一个azure函数并调用该函数,该函数的输出将是一个arm模板,其输出字符串替换了所有字符


为什么用户要通过arm模板创建资源?我的意思是,他们不是先通过门户网站创建它们,然后提取模板吗?许多Azure部署,特别是针对企业环境的部署,通过ARM、terraform、ansible或等效工具利用自动化。没错,但我会说,这取决于您正在构建的服务,通过门户构建它、获取arm模板并为更高级别的环境实现自动化几乎更容易。除非您是在自动化纯基础设施。为什么用户要通过arm模板创建资源?我的意思是,他们不是先通过门户网站创建它们,然后提取模板吗?许多Azure部署,特别是针对企业环境的部署,通过ARM、terraform、ansible或等效工具利用自动化。没错,但我会说,这取决于您正在构建的服务,通过门户构建它、获取arm模板并为更高级别的环境实现自动化几乎更容易。除非您正在自动化纯基础架构。