translate

translate 函数会评估一个字符串以及一组要翻译的字符,并返回翻译后的字符串。

语法

translate(string, abc, XYZ)

参数

string

要评估的字符串。

abc

将被替换的字符组成的字符串。

XYZ

用于替换的字符组成的字符串。XYZ 中的第一个字符将替换 abc 中的第一个字符在 string 中出现的所有实例。

返回值

翻译后的字符串。

描述

对于 string 中的每个字符,如果 abc 包含该字符,则将其替换为 XYZ 中相同索引处的字符。如果 abc 不包含该字符,则保持不变。

  • 如果 abc 的长度大于 XYZ,则 abc 末尾的额外字符将被映射为空字符串(即,它们将从源字符串中删除)。
  • 如果 XYZ 包含的字符多于 abc,则忽略多余的字符。
  • 如果一个字符在 abc 中出现多次,则第一次出现决定替换字符。

translate() 是一个逐字符替换函数,而不是正则表达式或字符串替换函数。abcXYZ 字符串代表字符密码,而不是子字符串。这意味着,如果你遇到上述任何一种情况,你可能正在错误地使用该方法(除了可能使用更长的 abc 来删除某些字符)。

像这样的替换不会像你期望的那样输出 The quick red fox;相反,结果是 The quick red fdx

xml
<xsl:value-of select="translate('The quick brown fox', 'brown', 'red')" />

示例

使用 translate() 进行大小写转换

XPath 指出,translate 函数并不是所有语言中大小写转换的充分解决方案。未来版本的 XPath 可能会提供额外的函数用于大小写转换。

然而,这是我们目前最接近能够将字符串转换为大写或小写的函数。

xml
<xsl:value-of select="translate('The quick brown fox.', 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXYZ')" />

输出

THE QUICK BROWN FOX.

规范

XPath 1.0 4.2

Gecko 支持情况

支持。