2017-12-15 8 views
1

変数に特殊文字が含まれているかどうかテストしたい。私はregular expressionについて考えましたが、私は固執しました:どのように非数値と文字(小文字と大文字)を取得し、$と_と#以外のものを取得するのですか?

+0

正確に一致させたい例をいくつか共有できますか? –

+0

変数に0〜9までの文字とA〜Zと$と_と# – pheromix

+1

'!s.matches("(\\ p {Alnum} | [_#$] )* ")'(java) –

答えて

3

true場合は、入力がZと$までZとAまでの文字9まで0とは異なるとAが含まれており、_および#

[^0-9a-zA-Z#_$]+

boolean check = str.replaceAll("[^0-9a-zA-Z#_$]+", "").length() < str.length(); 

この正規表現を使用することができますアイデアは、すべての非数値と文字(小文字と大文字)$_、および#をあなたの文字列で置き換えて、元の文字列で長さをチェックします。

それが返されます:

"Hello123#_$)" -> false 
"Hello123_$#"  -> true 

簡単な解決策は次のとおりです。

boolean check = str.matches("[0-9a-zA-Z#_$]+"); 

リターンtrue、入力が含まれている場合のみ、数値と文字(大文字と小文字)と$_および# 1回以上

-1

JavaScriptのコードスニペットは以下のとおりです。私はこれがあなたの目的を解決すると思います。

var format = /[@$_]+/; 

if(format.test('[email protected]$_')){ 
    alert("true"); 
    return true; 
} else { 
    alert("false"); 
    return false; 
} 
+2

間違った言語です。 –

1

str = str.replaceAll("[\\d\\p{L}]", "") STR

からすべての非数値とUnicode文字(小文字と大文字)を削除したり、任意の数値以外の非文字と非$ _と#があるかどうかを見つけるためにstr.matches(".*[^$_#?\\d\\p{L}].*")を使うのでしょうか?文字列

+0

私はそれらを削除したくないのですが、変数に変数があるかどうかをテストするだけです。 – pheromix

+0

と$ _と#はどうですか?彼らは拒否されるべきではありません。 – pheromix

関連する問題