java校驗數字
⑴ java中驗證字元串是不是數字的四種方法
判斷字元串是不是數字,大家可能會用一些java自帶的方法,也有可能用其他怪異的招式,比如判斷是不是整型數字,將字元串強制轉換成整型,不是數字的就會拋出錯誤,那麼就不是整型的了。但本文介紹的比較好的兩種方法:
1。java類庫自帶的方法:
public boolean isNum(String msg){
if(java.lang.Character.isDigit(msg.charAt(0))){
return true;}return false;}0202更新:發現以上方法寫得不夠到位,現在就改為下面的簡單說明了,至於具體的方法實現字元串判斷是否數字就不寫了。
java.lang.Character.isDigit(char ch) boolean
isDigit 只能作用於char,所以判斷字元串是否為數字,要一個一個拿出char進行判斷。
2。用正則表達式
首先要import java.util.regex.Pattern 和 java.util.regex.Matcher
這兩個包,接下來是代碼
public boolean isNumeric(String str){Pattern pattern = Pattern.compile(」[0-9]*」);
Matcher isNum = pattern.matcher(str);
if( !isNum.matches() ){return false;}return true;}02
3。用正則表達式
⑵ java如何在輸入框中判斷是否輸入的是數字
這里是Java後台驗證。
publicstaticvoidmain(String[]args){
//target是從文本框傳來的數據。這里進行模擬
Stringtarget="22221";
//如果為true,則是數字,否則不是。
System.out.println(isNumeric(target));
}
/**
*正則表達式:判斷是否數字
*@paramstr
*@return
*/
publicstaticbooleanisNumeric(Stringstr){
Patternpattern=Pattern.compile("[0-9]*");
returnpattern.matcher(str).matches();
}
也可以直接在前台驗證,用javascript驗證。同樣用正則表達式。
<scripttype="text/javascript">
functionvalidate(){
varreg=newRegExp("^[0-9]*$");
varobj=document.getElementById("name");
if(!reg.test(obj.value)){
alert("請輸入數字!");
}
if(!/^[0-9]*$/.test(obj.value)){
alert("請輸入數字!");
}
}
</script>
⑶ java身份證號位數校驗
function checkIdcard(num)
{
num = num.toUpperCase();
//身份證號碼為15位或者18位,15位時全為數字,18位前17位為數字,最後一位是校驗位,可能為數字或字元X。
if (!(/(^\d{15}$)|(^\d{17}([0-9]|X)$)/.test(num)))
{
//alert('輸入的身份證號長度不對,或者號碼不符合規定!\n15位號碼應全為數字,18位號碼末位可以為數字或X。');
return false;
}
//校驗位按照ISO 7064:1983.MOD 11-2的規定生成,X可以認為是數字10。
//下面分別分析出生日期和校驗位
var len, re;
len = num.length;
if (len == 15)
{
re = new RegExp(/^(\d{6})(\d{2})(\d{2})(\d{2})(\d{3})$/);
var arrSplit = num.match(re);
//檢查生日日期是否正確
var dtmBirth = new Date('19' + arrSplit[2] + '/' + arrSplit[3] + '/' + arrSplit[4]);
var bGoodDay;
bGoodDay = (dtmBirth.getYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4]));
if (!bGoodDay)
{
//alert('輸入的身份證號里出生日期不對!');
return false;
}
else
{
//將15位身份證轉成18位
//校驗位按照ISO 7064:1983.MOD 11-2的規定生成,X可以認為是數字10。
var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
var nTemp = 0, i;
num = num.substr(0, 6) + '19' + num.substr(6, num.length - 6);
for(i = 0; i < 17; i ++)
{
nTemp += num.substr(i, 1) * arrInt[i];
}
num += arrCh[nTemp % 11];
return true;
}
}
if (len == 18)
{
re = new RegExp(/^(\d{6})(\d{4})(\d{2})(\d{2})(\d{3})([0-9]|X)$/);
var arrSplit = num.match(re);
//檢查生日日期是否正確
var dtmBirth = new Date(arrSplit[2] + "/" + arrSplit[3] + "/" + arrSplit[4]);
var bGoodDay;
bGoodDay = (dtmBirth.getFullYear() == Number(arrSplit[2])) && ((dtmBirth.getMonth() + 1) == Number(arrSplit[3])) && (dtmBirth.getDate() == Number(arrSplit[4]));
if (!bGoodDay)
{
//alert(dtmBirth.getYear());
//alert(arrSplit[2]);
//alert('輸入的身份證號里出生日期不對!');
return false;
}
else
{
//檢驗18位身份證的校驗碼是否正確。
//校驗位按照ISO 7064:1983.MOD 11-2的規定生成,X可以認為是數字10。
var valnum;
var arrInt = new Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
var arrCh = new Array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
var nTemp = 0, i;
for(i = 0; i < 17; i ++)
{
nTemp += num.substr(i, 1) * arrInt[i];
}
valnum = arrCh[nTemp % 11];
if (valnum != num.substr(17, 1))
{
//alert('18位身份證的校驗碼不正確!應該為:' + valnum);
return false;
}
return true;
}
}
return false;
}
var result = checkIdcard(sfzh);
if (!result)
{
$.messager.alert('提示信息','身份證號碼格式不正確');
return;
}
⑷ java如何判斷字元串中是否含有數字
一、演算法思想
從字元串的第一個字元開始,逐個判斷字元是否是數字,若是數字,說明字元串中包含數字,否則繼續判斷下一個字元,直到找到數字或到字元串結束也沒有發現數字。
二、和盯操作過程
枝岩Java2EnterpriseEdition
^(不是數字)
^(不是數字)
^(不是數字)
^(不是數字)
^(不是數字)
^(是數字,結束)
三、程序代碼
publicclassMain{
publicstaticvoidmain(String[]args){
System.out.println(containDigit("Java2EnterpriseEdition"));
}
/**
*判斷字元串中是否包含數字
*@paramsource待判斷字元串
*@return字元串中是否包含數字,true:包含數字猛棚御,false:不包含數字
*/
(Stringsource){
charch;
for(inti=0;i<source.length();i++){
ch=source.charAt(i);
if(ch>='0'&&ch<='9'){
returntrue;
}
}
returnfalse;
}
}
四、運行測試
true