Java 如何允许用户只输入字母,不输入数字和其他字符

Java 如何允许用户只输入字母,不输入数字和其他字符,java,gwt,Java,Gwt,我想实现一个TexBox,用户只能在其中输入字母。当用户输入数字或无效字符时,附近必须显示一条错误消息。像这样: 您可以在keyTyped事件上编写一些验证代码,以检查最后键入的字母是什么。是不是一个数字。如果没有,则显示错误消息 尝试考虑KeyLister方法:keyTyped()您可以添加regex来执行Javascript以允许使用字母字符 function AllowAlphabet(e) { keyEntry = !isIE ? e.which : event.keyCode;

我想实现一个TexBox,用户只能在其中输入字母。当用户输入数字或无效字符时,附近必须显示一条错误消息。像这样:


您可以在keyTyped事件上编写一些验证代码,以检查最后键入的字母是什么。是不是一个数字。如果没有,则显示错误消息


尝试考虑
KeyLister
方法:
keyTyped()

您可以添加regex来执行Javascript以允许使用字母字符

function AllowAlphabet(e)
{

   keyEntry = !isIE ? e.which : event.keyCode;
   if (((keyEntry >= '65') && (keyEntry <= '90')) || ((keyEntry >= '97') && (keyEntry <= 
   '122')) || (keyEntry == '46') || (keyEntry == '32') || keyEntry == '45')
   return true;
}
函数AllowAlphabet(e)
{
keyEntry=!isIE?e.which:event.keyCode;

如果(((keyEntry>='65')&&&(keyEntry='97')&&(keyEntry),您可以在TextBox的KeyUpHandler上使用
Character.isleter(char)

  textBox.addKeyUpHandler(new KeyUpHandler() {
            public void onKeyUp(KeyUpEvent event) {
                if (!Character.isLetter(event.getNativeKeyCode())) {
                    ((TextBox)event.getSource()).cancelKey();
                    customPopup.showRelativeTo(textBox);// your styled PopupPanel
                }
            }
        });
但是,
Character.isleter(char)
与ASCII一起工作,如果您想了解更多信息,可以这样做:

/**
     * A better implementation of isLetter -- the default GWT version doesn't 
     * support non-English characters.
     *
     * @param c the character to check
     * @return whether the character represents and alphabetic symbol.
     */
    public static boolean isLetter(char c) {
        int val = (int) c;

        return inRange(val, 65, 90) || inRange(val, 97, 122) || inRange(val, 192, 687) || inRange(val, 900, 1159) ||
        inRange(val, 1162, 1315) || inRange(val, 1329, 1366) || inRange(val, 1377, 1415) || inRange(val, 1425, 1610);
    }

    /**
     * Checks if an int value is in a range.
     * @param value value to check
     * @param min min value
     * @param max max value
     * @return whether value is in the range, inclusively.
     */
    public static boolean inRange(int value, int min, int max) {
        return (value <= max) & (value >= min);
    }
/**
*一个更好的Isleter实现——默认的GWT版本没有
*支持非英语字符。
*
*@param c要检查的字符
*@return字符是否表示字母和字母符号。
*/
公共静态布尔值计数器(字符c){
int val=(int)c;
返回范围(val,65,90)|返回范围(val,97122)|返回范围(val,192687)|返回范围(val,9001159)||
在范围内(val,11621315)|在范围内(val,13291366)|在范围内(val,13771415)|在范围内(val,14251610);
}
/**
*检查int值是否在范围内。
*@param value要检查的值
*@param最小值
*@param最大值
*@return值是否在范围内,包括在内。
*/
公共静态布尔值范围(int值、int最小值、int最大值){
返回值(值=最小值);
}

看到这个:

你想要一个web解决方案吗?inRange的其他实现(仅当你想要字母(上/下)+数字:公共静态布尔Islander(char c){int val=(int)c;return inRange(val,65,90)| inRange(val,97,122)| inRange(val,48,57)}