`
jayzotion
  • 浏览: 48517 次
  • 性别: Icon_minigender_1
  • 来自: 森林之城
社区版块
存档分类
最新评论

javaScript对只能输入某些特殊组合字符串的验证

    博客分类:
  • php
阅读更多
因工作需要,今天帮同事写了一个要求如下的前台js验证代码:
1)以数字,逗号,"-"三个符号组成
2)以数字开头和结尾.
3)"-"前后必须是数字
<script type="text/javaScript">
/*********
*only be some special char;
*/
function onlySomeChar(inputStr)
{
	if((inputStr.match(/^\d.*\d$/g) && (inputStr.search(/[^0-9,-]/g)==-1)) || inputStr.match(/^\d*$/))
	{
		for(var i =0;i<inputStr.toString().length;i++)
		{
			if(inputStr.charAt(i)=="-")
			{
				if(isInt(inputStr.charAt(i-1))==false || isInt(inputStr.charAt(i+1))==false)
					return false;
			}
		}
		return  true;
	}
	return false;
}

/**
*if Integer  return true  
*else return false;
*/
function isInt(str)
{
	if (str.search(/[^0-9]/g)!=-1)
	{
		return false;
	}
	return true;
}

//the function of test
function test(strIn)
{
	if(onlySomeChar(strIn)==false)
	{
		alert(0);
	}
	else
	{
		alert(1);
	}

}
</script>
<input type="text"  id="test" onchange="test(this.value)">


分享到:
评论
4 楼 zbm2001 2009-05-14  
一个表达式,逻辑稍复杂些:
var reg = /^\d(-(?=\d))?([^\D]-(?=\d)|[\d,])*((?=\d)-)?\d$/g;
alert(reg.test(str))
3 楼 zbm2001 2009-05-14  
var reg = /^\d[\d,-]*\d$/g;
var reg1 = /\D-|-\D/;

var str = "11,1,1-11341131";

if(reg.test(str) && !reg1.test(str)){
    // pass
}
2 楼 jayzotion 2009-05-13  
我测试了一下,你那个好像不能满足,比如:
function test(obj){
  if(obj.value.match(/^(\d{1,}[\d \- \,]?\d{1,})+$/)){
     alert(1);
  }else{
     alert(0);
  }
}

比如 "11,1,1-11341131"   或者  "1"  或是 "11-1,1" 这样的组合都是满足条件的,但测试不通过
error:
1.如果只是一个数字的时候一看就不满足;
2.(/^(\d{1,}[\d \- \,]?\d{1,})+$/ =>数字后面必须是 ",",与要求不合
3. 要求是 数字中间的字符不一定要存在
4. ......
不过很感谢你的回复
1 楼 xiarilian12 2009-05-06  
如果是必填项

/^(\d{1,}[\d \- \,]?\d{1,})+$/
首先以数字开头和结束\d{1,}至少一个
中间的东西可有可无,顺序无关,我不知道逗号要不要转义

这样是不是更好一点

相关推荐

    javascript中使用正则表达式实现删除字符串中的前后空格

    正则表达式是由一系列特殊字符和普通字符组合而成的,用于匹配字符串的某些模式。在JavaScript中,字符串对象有一个replace方法,可以使用正则表达式来匹配并替换字符串中的内容。 接下来,让我们来看具体的例子。...

    extjs表单验证特殊字符

    上述示例中,`^[a-zA-Z0-9_]*$`是一个正则表达式,它表示字符串只能由字母、数字和下划线组成,不能有其他字符。 4. **全局验证(Ext.form.Basic)**: EXTJS还提供了`Ext.form.Basic`类,允许在表单级别执行全局...

    js处理特殊字符

    在JavaScript(以下简称JS)开发过程中,经常会遇到需要处理文本字符串中的特殊字符的情况。这些特殊字符可能包括但不限于:`~!@#$%^&*()=|{}':;',[]&lt;&gt;/?~@#&*—|{}"等。对于这些特殊字符的处理,通常涉及到字符串的...

    JS正则表达式获取字符串中特定字符的方法

    通过使用这个在线工具,开发者可以输入测试字符串和正则表达式,然后工具会显示出匹配结果,方便开发者理解和验证他们的正则表达式是否符合预期。 ### 结语 通过本文的介绍,我们可以了解到使用JavaScript中的正则...

    js中过滤特殊字符的正则表达式

    正则表达式是一种强大的文本匹配工具,它能够定义一个搜索模式,用来匹配字符串中的字符组合。在处理用户输入的场景中,常常需要过滤掉输入内容中的特殊字符,以保证数据的安全性和有效性。 ### 正则表达式的构建和...

    JavaScript常用验证

    1. 邮箱验证:在JavaScript中,我们可以使用正则表达式来检查输入的邮箱格式是否正确。例如,`/^\w+@[a-zA-Z_]+?\.[a-zA-Z]{2,3}$/` 是一个简单的邮箱验证规则。 2. 密码验证:通常我们需要确认密码的复杂性,如...

    RegExp正则表达式

    - `()`:用于组合字符串,确保括号内的内容作为一个整体被处理。 - `|`:用于实现“或”的逻辑操作,匹配括号中的任一模式。 #### 五、正则表达式对象 在JavaScript中,可以使用`RegExp`构造函数创建正则表达式...

    js验证大全

    JavaScript验证在Web开发中扮演着至关重要的角色,用于确保用户输入的数据符合预期的格式和标准。以下是一些关键的JavaScript验证知识点,涵盖了标题和描述中提到的各个方面: 1. **字符串长度限制**: - ...

    verJs表单验证提示插件.zip

    5. URL验证:验证输入的字符串是否为有效的网址格式。 6. 密码强度验证:判断密码的复杂度,通常要求包含大小写字母、数字和特殊字符的组合。 7. 身份证号码验证:对于中国用户,验证输入的身份证号码是否合法。 8. ...

    javascript经典特效---数字翻译成英语.rar

    通过学习和理解这个“javascript经典特效---数字翻译成英语.rar”项目,开发者不仅可以掌握数字转换成英文的技巧,还能提升对JavaScript条件判断、字符串操作、函数封装等基础概念的理解。在实际应用中,这个功能...

    正则表达式(基本包含所有验证的正则)

    它通过一系列简短的符号组合来匹配字符串中的某些部分,从而实现高效的数据处理。在本篇文章中,我们将详细探讨几种常用的正则表达式应用场景,并提供相应的示例代码。 #### 二、限制输入内容的应用场景 ##### 1. ...

    网页特效代码 输入密码后才能进入页面

    这里定义了一个包含大小写字母和特殊字符的字符串`al`,它将会被用来进行加密和解密操作。 - **加密算法的逻辑**: - 用户输入的用户名和密码会被拼接成一个字符串`tst`。 - 服务器端或预先设置好的加密字符串`...

    javascript正则表达式基础篇

    正则表达式是用于匹配字符串中字符组合的模式。在JavaScript中,正则表达式同样被用来进行复杂的文本匹配和文本替换操作。JavaScript的正则表达式功能非常强大,通过使用正则表达式,我们可以轻松地执行各种复杂的...

    JS输入框邮箱地址验证代码

    这些模式可以用来检查一个字符串是否包含某个子串、替换某些字符或从字符串中提取感兴趣的部分。以下是正则表达式中的一些基本元素和特殊字符: - **字符类**: `[abc]` 表示匹配字符 `a`、`b` 或 `c`。 - **预定义...

    JavaScript 正则表达式

    正则表达式是一种用于匹配字符串的强大工具,在JavaScript中非常常用,尤其是在进行字符串验证、搜索和替换等操作时。 ##### 2.1 正则表达式的概念 正则表达式是由一系列字符和特殊符号组成的模式,用于匹配字符串...

    ASCII 字符代码图表,编辑框限制字符功能的例程1.rar

    这通常涉及编写一段代码,以确保用户在编辑框中只能输入特定类型的字符,如数字、字母、特殊字符或它们的组合。这种功能可以防止用户输入无效数据,提高软件的稳定性和用户体验。 实现编辑框限制字符功能的方法有很...

    javascript 控制input只允许输入的各种指定内容

    为了禁止输入法中的某些特殊字符,比如防止用户输入中文等,可以采用如下方法: ```javascript (/[^\w=@#]|_/ig,'')"&gt; ``` 这里的正则表达式`/[^\w=@#]|_/ig`表示匹配除英文字母、数字、`=`、`@`、`#`之外的所有...

    (完整的,精美的)JAVASCRIPT用户注册

    正则式是一种强大的文本处理工具,可以用来匹配、查找、替换字符串。例如,我们可以用正则表达式检查用户名是否只包含字母和数字,是否达到指定长度;验证邮箱格式是否正确,如`/\S+@\S+\.\S+/`可以匹配大部分常见...

Global site tag (gtag.js) - Google Analytics