如何测试元素的值是否为数字/可转换为数字?
我需要做的是复制值(如果它是一个数字),如果它是一个字符串则替换为99
答案 0 :(得分:2)
string(number($ x))='NaN'测试$ x是否可以转换为数字。
答案 1 :(得分:1)
答案 2 :(得分:1)
除了 @Michael Kay的正确答案:
number($x) = number($x)
当true()
可投放到数字时,此表达式为$x
这里我们使用以下事实:
如果$x
不是数字,那么根据定义,number($x)
为NaN
NaN
不等于任何值,即使是NaN
现在,您的最后一个问题:
我需要做的是复制值,如果它是一个数字,并替换 它是99,如果它是一个字符串
使用强>:
$x * (number($x) = number($x))
+
99 * not(number($x) = number($x))
解释:当数字表达式的一部分时,布尔值将转换为数字(true()
- > 1,false()
- > 0)。在上面的表达式中,+
的一个参数将为0
,其中一个将为1
,具体取决于$x
是否为/是数字。