在XSL中从字符串中删除非字母数字字符

joe*_*joe 9 xslt

如何从XSL中的字符串中删除非字母数字字符?

Tom*_*lak 17

如果将非字母数字定义为[^a-zA-Z0-9]:

<xsl:value-of select="
  translate(
    string,
    translate(
      string, 
      'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789',
      ''
    ),
    ''
  )
" />
Run Code Online (Sandbox Code Playgroud)

请注意,这适用于XSLT 1.0.在XSLT 2.0中,您可以使用直接使用正则表达式replace().


小智 7

对于XSLT 2.0,您可以使用replace()如下:

<xsl:value-of select="replace(<string>, '[^a-zA-Z0-9]', '')" />
Run Code Online (Sandbox Code Playgroud)