输入字符串,只能输入数字,如果输入了字母,如何识别

powerpanda 2003-09-13 10:26:34
输入一系列字符串,只能输入数字,如果输入了字母,如何识别,希望能告诉我方法,谢谢各位了。
...全文
313 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
alemjann 2003-09-15
  • 打赏
  • 举报
回复
如果是页面的话

<input type="text" name="yzm" size="6" maxlength="4" class="put" onkeyup='this.value=this.value.replace(/\D/gi,"")'>
swinging 2003-09-15
  • 打赏
  • 举报
回复
to 楼上,
使用异常机制来判断是最差的。
另外,在页面中也是可以使用正则表达式的,直接对<input type='text'>的
onkeypress、onpaste、ondrop三个事件进行过滤来控制输入的字符,通过使用不同
的正则表达式来对不同要求的输入进行控制,比如只输入数字字符,输入浮点型的数据等等。
shipp 2003-09-15
  • 打赏
  • 举报
回复
正则表达式:
/^\d$/ 或者 /^[0-9]$/
flyx 2003-09-14
  • 打赏
  • 举报
回复
注意,要做输入限制必须在Document中处理
如果只监听键盘或者鼠标事件的话,有一些情况如复制不能处理
flyx 2003-09-14
  • 打赏
  • 举报
回复
如下是一个只允许输入整数的例子,如果要求可以输入小数,稍做修改即可
class IntDocument extends PlainDocument {
public void insertString(int offs, String str,AttributeSet attr) throws BadLocationException {
if (str == null || str.trim().length() == 0) return;
boolean insertflag = true;
StringBuffer sb = new StringBuffer(getText(0, getLength()));
sb.insert(offs, str);
try {
Integer.parseInt(sb.toString());
}catch(NumberFormatException ex) {
insertflag = false;
}
if (insertflag)
super.insertString(offs, str, attr);
}
}

JTextField textf = new JTextField();
textf.setDocument(new IntDocument());
pzl686 2003-09-14
  • 打赏
  • 举报
回复
try{
Integer.parserToInt(String value)
}
catch(Exception e)
{
}
如果抛出异常了就说明不是数字
seaman0916 2003-09-14
  • 打赏
  • 举报
回复
如果你是在Appliction或是Applet中的话用 flyx(枫林一笑) 的方法的方法最好!

如果是在Jsp中,你就不必费神了,在DreamWeaver MX中有现成的JavaScript,套用上就行了! 可以再改一下提示信息! 更好一些! "设计"--->"行为"---"检查表单" ......
当然如果你的javaScript比较好,就用 lymkelly(柳叶眉) 的!
我喜欢 DreamWeaver MX ! 方便!

^_^
lymkelly 2003-09-14
  • 打赏
  • 举报
回复
<SCRIPT LANGUAGE="JavaScript">
<!--
function onlyNum(inputStr) {
var flag=true;
for (var i = 0; i < inputStr.length; i++) {
var oneChar = inputStr.charAt(i)

if (oneChar < "0" || oneChar > "9") {
flag=false;
}
}
return flag;
}


//-->
</SCRIPT>
lymkelly 2003-09-14
  • 打赏
  • 举报
回复
判断一下每一个字母>0并且<9

function onlyNum(inputStr) {
var flag=true;
for (var i = 0; i < inputStr.length; i++) {
var oneChar = inputStr.charAt(i)

if (oneChar < "0" || oneChar > "9") {
flag=false;
}
}
return flag;
}
cxyPioneer 2003-09-14
  • 打赏
  • 举报
回复
有一个键盘按下事件,通过查按下键的ascii码的值把非数值排除
miaoliujun 2003-09-14
  • 打赏
  • 举报
回复
同意楼上
Keepers 2003-09-14
  • 打赏
  • 举报
回复
你用Integer.parserToInt(String value)
如果抛出异常了就说明不是数字
反之就是了啊
正则表达太慢了
swinging 2003-09-14
  • 打赏
  • 举报
回复
几个说明:正则表达式处理类Pattern是JDK1.4才有的
(我们要用JDK1.3,不能用,sigh)
另外:
上面的string不能为null,
如果为空字符串(即:"")也会返回true,可以根据需要来判断这种情况是否为真
swinging 2003-09-14
  • 打赏
  • 举报
回复
异常机制是为了捕获异常和错误的,
不是让你们拿来做判断的。
另外,异常机制用来判断,绝对是最慢的,正则表达式才正解。

假设有char a;
要判断它是否为数字,只要:
if(a>='0' && a<='9') {
System.out.println("true");
}else {
System.out.println("false");
}

如果是字符串,可以使用charAt方法遍历该字符串来获得结果,一旦有一个CHAR不为
数字就返回FALSE。

下面是使用正则表达式:
假设有字符串string,

if(Pattern.matches("[0-9]*", string)) {
System.out.println("true");
}else {
System.out.println("false");
}

到底是哪个简单,一目了然了吧。
zhonghua2003 2003-09-14
  • 打赏
  • 举报
回复
可以用正则表达式啊

try{
Integer.parserToInt(String value)
}
catch(Exception e)
{
}
如果抛出异常了就说明不是数字

stonegump 2003-09-14
  • 打赏
  • 举报
回复
可以用正则表达式啊,http://www.computerworld.com.cn 上有一篇文章
Java正则表达式详解
很不错。
hh410 2003-09-13
  • 打赏
  • 举报
回复
呵呵﹐能不能告訴我怎么輸入呀﹐我搞了很久都沒搞好呀﹐我是菜鳥~~

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧