テキストフィールドにカンマで区切った数字のシーケンスを入力する必要があります。カンマと数字以外のすべての文字を入力することは禁じられています。しかし、ラインに2つのカンマを入力することは可能です。 \ d + \、のような正規表現この場合は動作しません。テキストフィールドの2つのコンマを連続して禁止するjavafx
私は間違っていますか?
public class TextFieldCustom extends TextField {
public TextFieldCustom(){
}
@Override
public void replaceText(int start, int end, String string) {
if (string.matches("[0-9,]")|| string.isEmpty()){
super.replaceText(start, end, string);
}
}
@Override
public void replaceSelection(String string){
super.replaceSelection(string);
}
}
ありがとうございました!それだけが必要!実数で交互に現れるカンマとドットを避けるため、「(?!。* ,, |。* \\。\\。|。* \\。、|。*、\\。)[\\ d、 。] * ")それは私のために働く! –
@Роман少し過度なバージョンを試してください: ''(?!。* [\\。、] {2、})[\\ d、\\。] * "' –
@ Sergey!あなたの助けが私を強くする!もう1つの間違いを見つけました。あなたが提案した解決策を使用する場合は、次のように入力してください:2,2.1.2 つまり、ポイントと数字を入力した後、もう一度ポイントを入力することができます数字またはカンマのみにしてください。私はこれを解決する方法を理解していません。 –