怎样用正则表达式验证文本框输入的值

boluo520 2010-10-12 06:13:19
我现在需要验证用户输入的值不能包括中文以及中文标点符号
还有一些特殊字符,例如:@、|、等等。
...全文
649 点赞 收藏 20
写回复
20 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
boluo520 2010-10-13
[Quote=引用 13 楼 liubo_0329 的回复:]
引用 4 楼 liubo_0329 的回复:

$str = preg_replace("/[\pP\pS]/", ' ', $str);
你用这个把:过滤中文状态下的符号,如:,。《》等 替换成 ''
直接在可以判断的!

这个也不行吗?
[/Quote]
我用了这个好像没反应,照样可以输入中文标点符号
回复
liubo_0329 2010-10-13

/[\pP\pS]/

这个就那个关于 中文 的验证啊 你改下就可以了
回复
某一些特殊字符、不好办。
回复
liubo_0329 2010-10-13
[Quote=引用 4 楼 liubo_0329 的回复:]

$str = preg_replace("/[\pP\pS]/", ' ', $str);
你用这个把:过滤中文状态下的符号,如:,。《》等 替换成 ''
直接在可以判断的!
[/Quote]
这个也不行吗?
回复
boluo520 2010-10-13
我需要的是,用户不可以输入是:中文以及中文标点符号还有一些特殊字符,例如:@、|、等等。
用户可以输入的是:英文字母数字以及某一些特殊字符。
请问可以用户正则表达式来验证吗?
回复
boluo520 2010-10-13
\\u4e00-\\u9fa5
我想在js中验证,但是用了上面的正则表达式后,数字就不能输入了,好像英文逗号也不行。
这些都是要可以输入的。怎么办呢?
回复
coolbamboo2008 2010-10-13
js的正则,六楼写的希望能给你帮助
回复
微甜灬呼吸 2010-10-13
\\u4e00-\\u9fa5
回复
kala197 2010-10-13
JS 正则验证 第一个回复就是例子
回复
kala197 2010-10-13
><PRE class=java name="code">"^\\d+$"  //非负整数(正整数 + 0)   
"^[0-9]*[1-9][0-9]*$"  //正整数
"^((-\\d+)|(0+))$"  //非正整数(负整数 + 0)
"^-[0-9]*[1-9][0-9]*$"  //负整数
"^-?\\d+$"    //整数
"^\\d+(\\.\\d+)?$"  //非负浮点数(正浮点数 + 0)
"^(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*))$" 
//正浮点数
"^((-\\d+(\\.\\d+)?)|(0+(\\.0+)?))$"  //非正浮点数(负浮点数 + 0)
"^(-(([0-9]+\\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\\.[0-9]+)|([0-9]*[1-9][0-9]*)))$" 
//负浮点数
"^(-?\\d+)(\\.\\d+)?$"  //浮点数
"^[A-Za-z]+$"  //由26个英文字母组成的字符串
"^[A-Z]+$"  //由26个英文字母的大写组成的字符串
"^[a-z]+$"  //由26个英文字母的小写组成的字符串
"^[A-Za-z0-9]+$"  //由数字和26个英文字母组成的字符串
"^\\w+$"  //由数字、26个英文字母或者下划线组成的字符串
"^[\\w-]+(\\.[\\w-]+)*@[\\w-]+(\\.[\\w-]+)+$"    //email地址
"^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$"  //url
"^[A-Za-z0-9_]*$"
</PRE>
回复
kala197 2010-10-13
function isTrueName(s)   
{
var patrn=/^[a-zA-Z]{1,30}$/;
if (!patrn.exec(s)) return false
return true
}
}}

//校验密码:只能输入6-20个字母、数字、下划线
<PRE class=java name="code">function isPasswd(s)
{
var patrn=/^(\w){6,20}$/;
if (!patrn.exec(s)) return false
return true
}
</PRE>
<BR>
<BR>//校验普通电话、传真号码:可以“+”开头,除数字外,可含有“-”
<BR><PRE class=java name="code">function isTel(s)
{
//var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?(\d){1,12})+$/;
var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
if (!patrn.exec(s)) return false
return true
}
</PRE>
<BR>
<BR>//校验手机号码:必须以数字开头,除数字外,可含有“-”
<BR><PRE class=java name="code">function isMobil(s)
{
var patrn=/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/;
if (!patrn.exec(s)) return false
return true
}
</PRE>
<BR>
<BR>//校验邮政编码
<BR><PRE class=java name="code">function isPostalCode(s)
{
//var patrn=/^[a-zA-Z0-9]{3,12}$/;
var patrn=/^[a-zA-Z0-9 ]{3,12}$/;
if (!patrn.exec(s)) return false
return true
}
</PRE>
<BR>
<BR>//校验搜索关键字
<BR><PRE class=java name="code">function isSearch(s)
{
var patrn=/^[^`~!@#$%^&*()+=|\\\][\]\{\}:;'\,.<>/?]{1}[^`~!@$%^&()+=|\\\]
[\]\{\}:;'\,.<>?]{0,19}$/;
if (!patrn.exec(s)) return false
return true
}

function isIP(s) //by zergling
{
var patrn=/^[0-9.]{1,20}$/;
if (!patrn.exec(s)) return false
return true
}
回复
boluo520 2010-10-13
谢谢了!我先试一下。呵呵!
回复
xuyang840117 2010-10-13
^[^@、|、]*$
回复
a605501800 2010-10-13
试试这个:<input type="text" name="userName"
onkeyup="value=value.replace(/[\W]/g,'')"
onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))">
回复
liubo_0329 2010-10-13

<script type="text/javascript">
function on_click(){
str = document.getElementById("id").value;
alert(str);
var patrn=/[^\w\.\,\.\/]/;//你自己需要什么特殊符号加进去就可以了 其他的都会排除
if (patrn.exec(str)) {
alert("NO");
}
}
</script>
<BODY bgcolor=pink>
<form action="">
<br>
<input type="text" id="id" />
<input type="button" value="确定" onclick="on_click()" />
</form>
</BODY>

这个一定可以
回复
ldz0414 2010-10-13
你试试这个js:
js:< input onkeyup="value=value.replace(/[^\w\.\/]/ig,'')" />
我也是在论坛里看见的。
回复
liubo_0329 2010-10-12
$str = preg_replace("/[\pP\pS]/", ' ', $str);
你用这个把:过滤中文状态下的符号,如:,。《》等 替换成 ''
直接在可以判断的!
回复
thegodofwar 2010-10-12
不满足你的需求,可以再改...
回复
thegodofwar 2010-10-12

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class TextMatch {

public static void main(String[] args) {

String str="呵呵呵";
Matcher m=Pattern.compile("[@|\\u4e00-\\u9fa5,“”《》;]").matcher(str);
if(m.find()) {
System.out.println("你的输入包含非法字符");
}else
System.out.println("验证通过");

}

}
回复
boluo520 2010-10-12
请问正则表达式的高手在哪里?
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2010-10-12 06:13
社区公告
暂无公告