2012-08-17 10 views
5

数値とドットだけを受け入れるJavaの正規表現が必要です。例えば数字とドットだけを検証するための正規表現

   1.1.1 ----valid 
      1.1 ----valid 
      1.1.1.1---valid 
      1. ----not valid 

ドットが開始位置または終了位置であってはなりません。

+2

どうのように出力1 ..1 "、" "1.11" '?あなたはすでに何か試しましたか?もしそうなら、あなたもそれを投稿し、何がうまくいかなかったのか説明できますか? –

+0

は1桁で有効です。 – Anirudha

+0

ドットのない数字はどうですか?言い換えれば、ドットはオプションであるか必須であるか? – tripleee

答えて

17

私はこれが何をしたいと思い:

^\d+(\.\d+)*$ 

説明:それは、ドットで区切られた数字を受け入れます。数字で始まり、数字で終わります。数字は複数の数字を持つことができます。ドットのない1つの数字も受け入れられます。複数の数字なし

バリアント:

^\d(\.\d)*$ 

バリアント少なくとも1つのドットが必要です。

^\d+(\.\d+)+$ 
^\d(\.\d)+$ 

Javaで使用すると、\記号をエスケープする必要があり、そのコードがあることを忘れないでください次のようになります。

Pattern NUMBERS_WITH_DOTS = Pattern.compile("^\\d+(\\.\\d+)*$"); 
1

したがって、数字とピリオドが必要ですが数字で始まり数字で終わる正規表現が必要ですか?

"[0-9][0-9.]*[0-9]" 

しかし、これは1のようには一致しません。ピリオドは含まれていませんが、数字で開始して終了します。

0
"^\\d(\\.\\d)*$" 

1  ----valid (if it must be not valid, replace `*` => `+`) 
1.1.1 ----valid 
1.1 ----valid 
1.1.1.1---valid 
1. ----not valid 
11.1.1 ---not valid (if it must be valid, add `+` after each `d`) 
0
<!DOCTYPE html> 
<html> 
<body> 

<p>RegEx to allow digits and dot</p> 
Number: <input type="text" id="fname" onkeyup="myFunction()"> 

<script> 
function myFunction() { 
    var x = document.getElementById("fname"); 
    x.value = x.value.replace(/[^0-9\.]/g,""); 
} 
</script> 

</body> 
</html> 
0

私はこれが何をしたいと思い:

Pattern.compile("(([0-9](\\.[0-9]*))?){1,13}(\\.[0-9]*)?(\\.[0-9]*)?(\\.[0-9]*)?", Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE | Pattern.DOTALL | Pattern.MULTILINE); 

説明:それは、ドットで区切られた数字を受け入れます。数字で始まり、数字で終わります。数字は複数の数字を持つことができます。ドットのない1つの数字は受け入れられません。

`」0.1 "`、`" についてthis--

  • 1.1
  • 1.12
  • 1.1.5
  • 1.15.1.4