黑马程序员技术交流社区

标题: javascript 如何判断 文本框 是以数字开头的 [打印本页]

作者: 秦二江    时间: 2013-5-23 11:15
标题: javascript 如何判断 文本框 是以数字开头的
本帖最后由 秦二江 于 2013-5-23 17:59 编辑

javascript 如何判断 文本框 是以数字开头的  ,C# convert 用多了,这 真蒙圈
作者: 谢孔营    时间: 2013-5-23 11:37
本帖最后由 谢孔营 于 2013-5-23 11:59 编辑

<script language="javascript">
function f(){
var a = document.getElementById("txtName").value;
var test1 = /^[0-9]+[\s\S]*$/;
if(test1.test(a)){
alert("开头是数字");
}
else{
alert("开头不是数字");
}
}
</script>
<html>
<body>
<input type="text" id="txtName"/>
<input type="button" value="测试"/>
</body>
</html>
作者: 秦二江    时间: 2013-5-23 12:12
谢孔营 发表于 2013-5-23 11:37
function f(){
var a = document.getElementById("txtName").value;
var test1 = /^[0-9]+[\s\S]*$/;

谢谢,好强大的正则表达式
作者: 秦二江    时间: 2013-5-23 12:14
c15881291595 发表于 2013-5-23 11:39

:D补一下正则表达式
作者: 迟强    时间: 2013-5-23 14:18
用js判断一个字符串是否是以某个子字符串开头如:1600054是否以16开头,可以这样做:
var fdStart = _fdCode.indexOf("16");
if(fdStart == 0){
   表示_fdCode是以16开头;
}else if(fdStart == -1){
   表示_fdCode不是以16开头
}
作者: 谢孔营    时间: 2013-5-23 14:30
因为正则表达式内容很多,我不能补全
\b 是正则表达式规定的一个特殊代码(某些人叫它元字符,meta character),代表着
单词的开头或结尾,也就是单词的分界处。
“.”是另一个元字符,匹配除了换行符以外的任意字符。*同样是元字符,不过它代表的不是
字符,也不是位置,而是数量——它指定*前边的内容可以连续重复出现任意次以使整个表达式
得到匹配。 因此, “ .*” 连在一起就意味着任意数量的不包含换行符
这里的\d 是一个新的元字符,匹配任意的数字(0,或 1,或 2,或……)。-不是元字符,
只匹配它本身——连字号。
在 Java 中的 String 类中有好几个方法都跟正则表达式有关,最典型的就是
public boolean matches(String regex)
告知此字符是否匹配给定的正则表达式。
使用这个方法来测试和运行上面学到的正则表达式,示例如下:
public class Test {
public static void main(String[] args) {
String str = "010-62972039";
System.out.println("str是一个正确的电话号码?答案是:" +
str.matches("0\\d{2}-\\d{8}"));
}
}
运行结果:str 是一个正确的电话号码?答案是:true
注意:由于在 Java 里面“\”需要转义,应该变成“\\”。
在 Java 中,有专门进行正则表达式的类,在 java.util.regex 包里面。
. 匹配除换行符以外的任意字符
\w 匹配字符或数字或下划线
\s 匹配任意的空白符
\d 匹配数字
\b 匹配字符串的开始或结束
^ 匹配字符串的开始
$ 匹配字符串的结束
例 1:\d+
匹配 1 个或更多连续的数字。这里的+是和*类似的元字符,不同的是*匹配重复任意次(可
能是 0 次),而+则匹配重复 1 次或更多次
例 3:\b\w{6}\b
匹配刚好 6 个字母/数字的单词。
例 4:^\d{5,12}$
匹配必须为 5 位到 12 位数字的字符串
* 重复零次或多次
+ 重复一次或多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n次到m次
13\d{9} 匹配 13 后面跟 9 个数字(中国的手机号)
常见正则表达式
(1)检测是否 Email 地址
^([\\w-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|
(([\\w-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$
(2)判断输入的字符串只包含汉字
^[\u4e00-\u9fa5]+$
(4)判断输入的字符串是否是一个合法的手机号,这个不完全,只是 13 开头的
^13\\d{9}$
(5)判断输入的字符串只包含数字,可以匹配整数和浮点数
^-?\\d+$|^(-?\\d+)(\\.\\d+)?$

作者: 秦二江    时间: 2013-5-23 17:58
谢孔营 发表于 2013-5-23 14:30
因为正则表达式内容很多,我不能补全
\b 是正则表达式规定的一个特殊代码(某些人叫它元字符,meta charact ...

好,够用了,谢谢你
作者: shenge321    时间: 2013-5-23 22:46
这个考试题我花了一上午才写好的,js了解的太少了,不停的查书写规范、函数用法。我是先用substing方法截第一个字符,然后用这个正则([0-9]{1},解释。只能是0到9的数字,出现一次。)去验证截取的字符是不是数字。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2