分页: 1 / 1

请教:如何判断一个变量是否为手机号码?

发表于 : 2010-08-12 2:31
fengjie
请教:如何判断一个变量是否为手机号码?
手机号码:
第1位必须为1,第2位必须为3、5、8其中一个,后面9位0-9任意数字
如果是正确的手机号码则输出true,否则输出fail
请问该如何写?新手,望指教,谢谢!

Re: 请教:如何判断一个变量是否为手机号码?

发表于 : 2010-08-12 7:10
luodayuan
貌似用正则表达式能解决问题,具体怎么解决你在思考一下吧!

Re: 请教:如何判断一个变量是否为手机号码?

发表于 : 2010-08-12 9:50
c\nc
bash 的话,试试这个,我没试过

代码: 全选

if [[ $num =~ ^1[358][0-9]{9}$ ]]; then ...

Re: 请教:如何判断一个变量是否为手机号码?

发表于 : 2010-08-12 10:53
pityonline
借用楼上的语句可以这样:

代码: 全选

#!/bin/bash
echo type a number
read num
if [[ $num =~ ^1[358][0-9]{9}$ ]];
then
        echo true
else
        echo false
fi

Re: 请教:如何判断一个变量是否为手机号码?

发表于 : 2010-08-12 11:32
trigger
借用楼上语句写个循环

代码: 全选

#!/bin/bash
read -p "keyin a cell number here : " cell
while :
do
if [[ $cell =~ ^1[358][0-9]{9}$ ]]; then
echo "yeah , a cell"
break
else
read -p "not a cell , keyin again : " cell
fi
done

Re: 请教:如何判断一个变量是否为手机号码?

发表于 : 2010-08-12 12:32
eexpress
lol
一层一层的加强。

其实2楼就说了。

Re: 请教:如何判断一个变量是否为手机号码?

发表于 : 2010-08-12 13:39
fengjie
:em11
达到目的了,谢谢LS的几位前辈!

代码: 全选

#!/bin/bash
#判断一个变量是否为手机号码
Number="13800138000"
if [[ $Number =~ ^1[358][0-9]{9}$ ]];
then
	 echo "true"
else
	 echo "fail"
fi
其实这样写我才比较容易看懂,
只是还是不太明白1前面的~ ^和{9}后面的$是什么意思
望能继续指教,谢谢!

Re: 请教:如何判断一个变量是否为手机号码?

发表于 : 2010-08-12 13:47
pityonline
fengjie 写了: 只是还是不太明白1前面的~ ^和{9}后面的$是什么意思
望能继续指教,谢谢!
我只知道^在这里表示字符串的开始,$表示结尾,我也搞不清为嘛要加~这个符号。

Re: 请教:如何判断一个变量是否为手机号码?

发表于 : 2010-08-12 20:15
anticlockwise
pityonline 写了:
fengjie 写了: 只是还是不太明白1前面的~ ^和{9}后面的$是什么意思
望能继续指教,谢谢!
我只知道^在这里表示字符串的开始,$表示结尾,我也搞不清为嘛要加~这个符号。
加一个~是表示正则比配,否则是直接字符串匹配~~

Re: 请教:如何判断一个变量是否为手机号码?

发表于 : 2010-08-12 22:48
Jarson
anticlockwise 写了:
pityonline 写了:
fengjie 写了: 只是还是不太明白1前面的~ ^和{9}后面的$是什么意思
望能继续指教,谢谢!
我只知道^在这里表示字符串的开始,$表示结尾,我也搞不清为嘛要加~这个符号。
加一个~是表示正则比配,否则是直接字符串匹配~~
学习 :em11

Re: 请教:如何判断一个变量是否为手机号码?

发表于 : 2010-08-12 23:16
fengjie
Jarson 写了:
anticlockwise 写了:
pityonline 写了:
fengjie 写了: 只是还是不太明白1前面的~ ^和{9}后面的$是什么意思
望能继续指教,谢谢!
我只知道^在这里表示字符串的开始,$表示结尾,我也搞不清为嘛要加~这个符号。
加一个~是表示正则比配,否则是直接字符串匹配~~
学习 :em11
解释得很详细,谢谢!学习了
:em09

Re: 请教:如何判断一个变量是否为手机号码?

发表于 : 2010-08-12 23:30
fanhe
反正正则肯定能搞定

Re: 请教:如何判断一个变量是否为手机号码?

发表于 : 2010-08-12 23:56
tusooa

代码: 全选

tlcr: 0 庚寅年七月初四日 23:31:43 ~
● set 13123456789
tlcr: 0 庚寅年七月初四日 23:52:38 ~
● [[ $1 =~ ^1[358][0-9]{9}$ ]] && echo true || echo fail
true
不是一行搞定阿。
为什么要这么多?