用正則判斷,
/**
*驗證手機號碼格式是否正確
*@parammobiles
*@returntrue表示正確false表示不正確
*/
(Stringmobiles){
Patternp=Pattern.compile("^((13[0-9])|(15[0-9])|(18[0-9]))\d{8}");
Matcherm=p.matcher(mobiles);
returnm.matches();
}
當然手機號碼好像還有17開頭的,對應的正則改一下就好
"^((13[0-9])|(15[0-9])|(18[0-9])|(17[0-9]))\d{8}"
然後在你的代碼裡面調用這個方法,如果結果為false,就throw new MyException(「手機號碼格式不正確」)一個異常。
異常定義可以去繼承Exception
/**
*CreatedbyKevinon2015/3/30.
*/
{
privateStringmsg;
publicMyException(Stringmsg){
super(msg);
this.msg=msg;
}
@Override
publicStringgetMessage(){
returnmsg;
}
}
❷ java里怎麼判斷用戶輸入的手機號是否合法
如果沒有其他要求,下面的就可以
^(13|15|18)\\d{9}$
表示以13或15或18開頭,後面9位數字結尾
public class SortTest {
public static void main(String[] args) {
String str="13020895785";
System.out.println(str.matches("^(13|15|18)\\d{9}$"));
}
}
❸ 關於java正則表達式判斷是否是手機號.
//你能把完整的程序貼出來么
//你限定一下位數
publicclassRegexDemo{
publicstaticvoidmain(String[]args){
Stringregex="1(3|5|7|8)[0-9]{9}";
Stringnum="17623629758";
System.out.println(num.matches(regex));
}
}
❹ Java快速判斷是不是手機號
可以藉助正則表達式來驗證手機號碼,這是比較高效的做法
publicclassIsPhone{
publicfinalstaticStringPHONE_PATTERN="^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(17([0,1,6,7,]))|(18[0-2,5-9]))\d{8}$";
publicstaticvoidmain(String[]args){
Scannerscan=newScanner(System.in);
System.out.println("請輸入驗證號碼");
Stringval=scan.nextLine();
booleanisPhone=Pattern.compile(PHONE_PATTERN).matcher(val).matches();
System.out.println(isPhone?"是一個手機號碼":"不是手機號");
}
}
❺ 安卓或者java判斷是不是手機號或電話號的方法
Pattern p = Pattern.compile("1\\d{10}"); Matcher m = p.matcher(13145632378); boolean b = m.matches(); 在java程序中由於「\」表示轉義字元用「\\」表示「\d」中的「\」
❻ java如何實現發送簡訊驗證碼功能
1、創建一個Http的模擬請求工具類,然後寫一個POST方法或者GET方法
/** * 文件說明 * @Description:擴展說明 * @Copyright: XXXX dreamtech.com.cn Inc. All right reserved * @Version: V6.0 */package com.demo.util; import java.io.IOException;import java.util.Map; import org.apache.commons.httpclient.HttpClient;import org.apache.commons.httpclient.HttpException;import org.apache.commons.httpclient.SimpleHttpConnectionManager;import org.apache.commons.httpclient.methods.GetMethod;import org.apache.commons.httpclient.methods.PostMethod; /** * @Author: feizi * @Date: XXXX年XX月XX日 XX:XX:XX * @ModifyUser: feizi * @ModifyDate: XXXX年XX月XX日 XX:XX:XX * @Version:V6.0 */public class HttpRequestUtil { /** * HttpClient 模擬POST請求 * 方法說明 * @Discription:擴展說明 * @param url * @param params * @return String * @Author: feizi * @Date: XXXX年XX月XX日 XX:XX:XX * @ModifyUser:feizi * @ModifyDate: XXXX年XX月XX日 XX:XX:XX */ public static String postRequest(String url, Map<String, String> params) { //構造HttpClient的實例 HttpClient httpClient = new HttpClient(); //創建POST方法的實例 PostMethod postMethod = new PostMethod(url); //設置請求頭信息 postMethod.setRequestHeader("Connection", "close"); //添加參數 for (Map.Entry<String, String> entry : params.entrySet()) { postMethod.addParameter(entry.getKey(), entry.getValue()); } //使用系統提供的默認的恢復策略,設置請求重試處理,用的是默認的重試處理:請求三次 httpClient.getParams().setBooleanParameter("http.protocol.expect-continue", false); //接收處理結果 String result = null; try { //執行Http Post請求 httpClient.executeMethod(postMethod); //返回處理結果 result = postMethod.getResponseBodyAsString(); } catch (HttpException e) { // 發生致命的異常,可能是協議不對或者返回的內容有問題 System.out.println("請檢查輸入的URL!"); e.printStackTrace(); } catch (IOException e) { // 發生網路異常 System.out.println("發生網路異常!"); e.printStackTrace(); } finally { //釋放鏈接 postMethod.releaseConnection(); //關閉HttpClient實例 if (httpClient != null) { ((SimpleHttpConnectionManager) httpClient.getHttpConnectionManager()).shutdown(); httpClient = null; } } return result; } /** * HttpClient 模擬GET請求 * 方法說明 * @Discription:擴展說明 * @param url * @param params * @return String * @Author: feizi * @Date: XXXX年XX月XX日 XX:XX:XX * @ModifyUser:feizi * @ModifyDate: XXXX年XX月XX日 XX:XX:XX */ public static String getRequest(String url, Map<String, String> params) { //構造HttpClient實例 HttpClient client = new HttpClient(); //拼接參數 String paramStr = ""; for (String key : params.keySet()) { paramStr = paramStr + "&" + key + "=" + params.get(key); } paramStr = paramStr.substring(1); //創建GET方法的實例 GetMethod method = new GetMethod(url + "?" + paramStr); //接收返回結果 String result = null; try { //執行HTTP GET方法請求 client.executeMethod(method); //返回處理結果 result = method.getResponseBodyAsString(); } catch (HttpException e) { // 發生致命的異常,可能是協議不對或者返回的內容有問題 System.out.println("請檢查輸入的URL!"); e.printStackTrace(); } catch (IOException e) { // 發生網路異常 System.out.println("發生網路異常!"); e.printStackTrace(); } finally { //釋放鏈接 method.releaseConnection(); //關閉HttpClient實例 if (client != null) { ((SimpleHttpConnectionManager) client.getHttpConnectionManager()).shutdown(); client = null; } } return result; }}
2、在創建一個類,生成驗證碼,然後傳遞相應的參數(不同的簡訊平台介面會有不同的參數要求,這個一般簡訊平台提供的介面文檔中都會有的,直接看文檔然後按要求來即可)
/** * 文件說明 * @Description:擴展說明 * @Copyright: XXXX dreamtech.com.cn Inc. All right reserved * @Version: V6.0 */package com.demo.util; import java.net.URLEncoder;import java.util.HashMap;import java.util.Map; /** * @Author: feizi * @Date: XXXX年XX月XX日 XX:XX:XX * @ModifyUser: feizi * @ModifyDate: XXXX年XX月XX日 XX:XX:XX * @Version:V6.0 */public class SendMsgUtil { /** * 發送簡訊消息 * 方法說明 * @Discription:擴展說明 * @param phones * @param content * @return * @return String * @Author: feizi * @Date: 2015年4月17日 下午7:18:08 * @ModifyUser:feizi * @ModifyDate: 2015年4月17日 下午7:18:08 */ @SuppressWarnings("deprecation") public static String sendMsg(String phones,String content){ //簡訊介面URL提交地址 String url = "簡訊介面URL提交地址"; Map<String, String> params = new HashMap<String, String>(); params.put("zh", "用戶賬號"); params.put("mm", "用戶密碼"); params.put("dxlbid", "簡訊類別編號"); params.put("extno", "擴展編號"); //手機號碼,多個號碼使用英文逗號進行分割 params.put("hm", phones); //將簡訊內容進行URLEncoder編碼 params.put("nr", URLEncoder.encode(content)); return HttpRequestUtil.getRequest(url, params); } /** * 隨機生成6位隨機驗證碼 * 方法說明 * @Discription:擴展說明 * @return * @return String * @Author: feizi * @Date: 2015年4月17日 下午7:19:02 * @ModifyUser:feizi * @ModifyDate: 2015年4月17日 下午7:19:02 */ public static String createRandomVcode(){ //驗證碼 String vcode = ""; for (int i = 0; i < 6; i++) { vcode = vcode + (int)(Math.random() * 9); } return vcode; } /** * 測試 * 方法說明 * @Discription:擴展說明 * @param args * @return void * @Author: feizi * @Date: XXXX年XX月XX日 XX:XX:XX * @ModifyUser:feizi * @ModifyDate: XXXX年XX月XX日 XX:XX:XX */ public static void main(String[] args) {// System.out.println(SendMsgUtil.createRandomVcode());// System.out.println("&ecb=12".substring(1)); System.out.println(sendMsg("18123456789,15123456789", "尊敬的用戶,您的驗證碼為" + SendMsgUtil.createRandomVcode() + ",有效期為60秒,如有疑慮請詳詢XXX-XXX-XXXX【XXX中心】")); }
然後執行一下,一般的情況下參數傳遞正確,按照介面文檔的規范來操作的話,都會發送成功的,手機都能收到驗證碼的,然後可能會出現的問題就是:發送的簡訊內容有可能會出現中文亂碼,然後就會發送不成功,按照簡訊平台的要求進行相應的編碼即可。一般都會是UTF-8編碼。
❼ 用Java驗證姓名,年齡,電話怎麼寫。
1、漢字驗證
這個方法改一下就行了
/**
*計算字元串長度.一個漢字的長度按2計算.如果給定的字元串為null,返回0.
*
*@paramstr
*待計算長度的字元串
*@return字元串長度
*/
publicstaticintstrlen(Stringstr){
if(str==null||str.length()<=0){
return0;
}
intlen=0;
charc;
for(inti=str.length()-1;i>=0;i--){
c=str.charAt(i);
if((c>='0'&&c<='9')||(c>='a'&&c<='z')||(c>='A'&&c<='Z')){//字母,數字
len++;
}else{
if(Character.isLetter(c)){//中文
len+=2;
}else{//符號或控制字元
len++;
}
}
}
returnlen;
}
2、電話
我給你個思路
就是把字元串轉化為數字,然後用try catch 如果呢異常就表明是數字,至於長度length一下就行了,
或用這個
郵編號碼:xxx.xxxx(都為數字)
固定電話號碼:xx-xxxx-xxxx(都為數字)
手機號碼:xxx-xxxx-xxxx(都為數字)
一般來說,基本的校驗功能留給頁面去處理,可以減輕伺服器的負擔。建議這些功能放在頁面完成。
java中的正則表達式:
/**
*java正則表達式來判斷是否EMAIL郵件
*
*@paramnumber
*待檢測字元串
*@return若是返回true,否則返回false
*/
importorg.apache.oro.text.regex.MalformedPatternException;
importorg.apache.oro.text.regex.Pattern;
importorg.apache.oro.text.regex.PatternCompiler;
importorg.apache.oro.text.regex.PatternMatcher;
importorg.apache.oro.text.regex.Perl5Compiler;
importorg.apache.oro.text.regex.Perl5Matcher;
(Stringnumber){
//*Regexp匹配模式
//StringpostCodeRegexp="([0-9]{3})+.([0-9]{4})+";//郵政編碼的匹配模式
//StringphoneRegexp="([0-9]{2})+-([0-9]{4})+-([0-9]{4})+";//固話的匹配模式
StringmobileRegexp="([0-9]{3})+-([0-9]{4})+-([0-9]{4})+";//手機的匹配模式
PatternCompilercompiler=newPerl5Compiler();
PatternMatchermatcher=newPerl5Matcher();
Patternpattern=null;
//Initializationofcompiler,matcher,andinputomitted;
try{
//pattern=compiler.compile(postCodeRegexp);
//pattern=compiler.compile(phoneRegexp);
pattern=compiler.compile(mobileRegexp);
}catch(MalformedPatternExceptione){
returnfalse;
}
if(matcher.matches(number,pattern))
returntrue;
else
returnfalse;
}
3、年齡跟電話差不多,也是轉換為數字,然後比較一下是否大於120
❽ java簡訊驗證碼如何驗證
先創建一個驗證碼,通過簡訊代理發送到用戶指定的手機,待用戶提交後做對比,看驗證碼是否一致。
整體流程:
用戶輸入手機號碼,點擊獲取驗證碼
伺服器創建驗證碼,並通過簡訊代理商發送到用戶手機
用戶查看驗證碼,輸入提交
伺服器進行確認,反饋成功或者失敗。
❾ JAVA 判斷號碼是手機還是固話
/**
* 驗證是否是手機號碼
*
* @param str
* @return
*/
public static boolean isPhone(String str) {
if (ValidationUtils.isEmpty(str)) {
return false;
}
Pattern pattern = Pattern.compile("^(1[3,4,5,7,8][0-9])\\d{8}$");
Matcher matcher = pattern.matcher(str);
boolean b = matcher.matches();
return b;
}
/**
* 是否是座機電話號碼
*
* @param str
* @return
*/
public static boolean isFixedLine(String str) {
if (ValidationUtils.isEmpty(str)) {
return false;
}
Pattern pattern = Pattern
.compile("^([0-9]{3}-?[0-9]{8})|([0-9]{4}-?[0-9]{7})$");
Matcher matcher = pattern.matcher(str);
boolean b = matcher.matches();
return b;
}