我得到了一个输入00000BE0891.116.828.我必须从中删除点和前导零.我尝试了translate()从中删除点的功能.
然后我尝试了string(number(00000BE0891.116.828)),但它返回了NaN,因为number()函数不验证字母表.有没有人有什么建议?
一种方法可能是使用translate删除所有零,然后将告诉您第一个非零字符是什么.然后,您可以使用substring-after以这种方式切断前导零.
<xsl:variable name="firstNonZero"
select="substring(translate($number, '0', ''), 1, 1)" />
<xsl:variable name="noLeadingZeroes"
select="concat($firstNonZero, substring-after($number, $firstNonZero))" />
<xsl:value-of select="translate($noLeadingZeroes, '.', '')" />
Run Code Online (Sandbox Code Playgroud)
(其中$ number是您的起始输入"00000BE0891.116.828")
或者,如果你想将它组合成一个表达式......
<xsl:value-of
select="translate(concat(substring(translate($number, '0', ''), 1, 1), substring-after($number, substring(translate($number, '0', ''), 1, 1))), '.', '')" />
Run Code Online (Sandbox Code Playgroud)