這是我的JTextField的正則表達式,不能超過x個字符,並且不包含字母或空格以外的任何其他字符。 出於某種原因,它允許[]和\字符。這讓我瘋狂。我的正則表達式錯誤嗎?對於alpha和空格的java正則表達式包括[]
package com.jayavon.game.helper;
import java.awt.Toolkit;
import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;
public class CharacterNameCreationDocument extends PlainDocument {
private static final long serialVersionUID = 1L;
private int limit;
public CharacterNameCreationDocument(int limit) {
super();
this.limit = limit;
}
public void insertString(int offset, String str, AttributeSet attr) throws BadLocationException {
if (str == null || (getLength() + str.length()) > limit || !str.matches("[a-zA-z\\s]*")){
Toolkit.getDefaultToolkit().beep();
return;
} else {
super.insertString(offset, str, attr);
}
}
}
因此,例如,您只需要長度爲3的字符串,它應該只是'hel','y y',而不是'c [ss','kkkk'? – Walter
是的,這是正確的,目前我稱它爲20,它允許我輸入[]或\ – KisnardOnline