XSLT 2.0 - 如何用字符串替换'('和')'来清空?

问题描述 投票:1回答:3

我在xslt 2.0中寻找这个解决方案:

输入:+47(12)1234567

输出:+47121234567

我试着用这个:

replace(replace('$Input', '(',''), ')','')

但它会抛出一个错误,因为'('和')'无法使用上面的代码进行转义。

请有人指出正确的解决方案。

谢谢。

xslt xpath replace xslt-2.0
3个回答
1
投票

括号是regex中的保留字符,这是replace函数作为参数。

最简单的解决方案是使用translate(),在这种情况下:

 <xsl:value-of select="translate('+47(12)1234567', '()', '')"/>

或者,您可以使用反斜杠转义括号。


1
投票

我会把两个字符放在一个replace调用replace($input, '[()]', '')的方括号中。


0
投票

使用此:<xsl:value-of select="replace($input, '\(|\)','')"/>

© www.soinside.com 2019 - 2024. All rights reserved.