Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xslt 验证数字和字母的字符串解析算法_Xslt_Xslt 1.0 - Fatal编程技术网

Xslt 验证数字和字母的字符串解析算法

Xslt 验证数字和字母的字符串解析算法,xslt,xslt-1.0,Xslt,Xslt 1.0,我正在做一个项目,需要解析所选字符串,并验证该字符串是否有数字值和字母值。如果您有任何想法,请提供一个解决方案。这是true()字符串$s可以用作数字的确切时间: number($s) = number($s) string-length(translate($s, $alpha, '')) = 0 not(string-length(translate($s, $alphaNum, '')) = string-length($s)) 当$s字符串仅由拉丁字符组成时,这就是true():

我正在做一个项目,需要解析所选字符串,并验证该字符串是否有数字值和字母值。如果您有任何想法,请提供一个解决方案。

这是
true()
字符串
$s
可以用作数字的确切时间:

number($s) = number($s)
string-length(translate($s, $alpha, '')) = 0
not(string-length(translate($s, $alphaNum, '')) = string-length($s))
$s
字符串仅由拉丁字符组成时,这就是
true()

number($s) = number($s)
string-length(translate($s, $alpha, '')) = 0
not(string-length(translate($s, $alphaNum, '')) = string-length($s))
其中,$alpha是包含所有小写和大写字母的字符串

当字符串
$s
至少包含一个字母或数字时,这是正确的:

number($s) = number($s)
string-length(translate($s, $alpha, '')) = 0
not(string-length(translate($s, $alphaNum, '')) = string-length($s))
其中,$alphaNumis是一个包含所有小写和大写字母以及所有数字的字符串

在XPath2.0(XSLT2.0)中,可以使用正则表达式和字符类

更新:从OP的评论来看,他实际上想测试字符串是否包含字母或数字


第二个新要求是在变量中存储每种情况下字符串的某些部分。但是,这一要求根本没有定义,只在OP的评论中给出了两个相互矛盾的示例。

此值变量可以包含字母和数字,例如值为“Cust12”。您能否告诉我如何验证变量是否同时包含数字和字母。@Hari:您想验证$Var是否只包含字母和数字,或者它包含字母和数字,但可能还包含其他类型的字符?需要检查它是否至少包含一个字母和字母number@Hari:我更新了我的答案(参见最后一个表达式)给你一个确切的答案。如果字符串有字母或数字字符,上面的逻辑似乎是有效的。我的意图是,如果字符串至少有一个字母和一个数字字符,则将其存储在变量中,否则我想在字符串中的“-”之后存储一个子字符串。例如:case1:100 ax需要将100 ax值strore到va中变量(X)。案例2:100-12需要将12转换成变量(X)。为什么我在这里强调要存储到变量(X)由于X的输出将在稍后阶段完成。可以使用正则表达式。因为您显然在逻辑上有问题,请提供一个小XML文档和转换的确切预期结果。您说需要测试字符串是否包含字母字符和数字,但在注释中您说对于
100-12
,表达式的计算结果应为
true()
——它只包含数字,不包含任何字母。