2012-01-18 10 views
-1

私は選択した文字列を解析し、その文字列に数値とアルファベットの値があるかどうかを検証する必要があるプロジェクトで作業しています。あなたが何か考えているなら、私に解決策を教えてください。数値とアルファベットの文字を検証する文字列解析アルゴリズム

+0

正規表現を使用できます。 – weston

+0

明らかにロジックに問題があるので、小さなXML文書と変換の正確な結果を提供してください。文字列に英字*と*が含まれているかどうかをテストする必要があると言いますが、コメントでは、数字が ' 100-12 'の場合は 'true() 'と評価されます。手紙を含んでいません。 –

答えて

0

これは、文字列$sが数として使用することができ、正確true()です:

number($s) = number($s) 

これは$s文字列のみラテン文字で構成され、正確にtrue()です:

string-length(translate($s, $alpha, '')) = 0 

ここで、$ alphaはすべて小文字と大文字を含む文字列です。

これは文字列$sは、少なくとも1つの文字または数字含まれている場合に真である:$ alphaNumisすべて小文字と大文字、すべての数字を含む文字列

not(string-length(translate($s, $alphaNum, '')) = string-length($s)) 

を。

XPath 2.0(XSLT 2.0)では、正規表現と文字クラスを使用できます。

更新:彼が実際に文字列が文字または数字が含まれているかどうかをテストしたいとOPのコメントからと思われます。

第2の新しい要件は、それぞれの場合に文字列の一部を変数に格納することです。しかし、この要件は全く定義されておらず、OPのコメントに示されている2つの矛盾した例に過ぎない。

+0

このValue変数には、文字と数字の両方を含めることができます(例:Valueに "Cust12"があります)。 Variableに数字と文字の両方があるかどうかを検証する方法を教えてください。 – Hari

+0

@ハリ:$ Varが文字と数字の* only *で構成されているか、*文字と数字が含まれていますが、他のタイプの文字も含まれていることを検証しますか? –

+0

少なくとも1文字と数字が含まれているかどうかを確認する必要があります – Hari