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

boluo520 2010-10-12 06:13:19
我现在需要验证用户输入的值不能包括中文以及中文标点符号
还有一些特殊字符,例如:@、|、等等。
...全文
717 20 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
boluo520 2010-10-13
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 liubo_0329 的回复:]
引用 4 楼 liubo_0329 的回复:

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

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

/[\pP\pS]/

这个就那个关于 中文 的验证啊 你改下就可以了
  • 打赏
  • 举报
回复
某一些特殊字符、不好办。
kevin#1 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,''))">
kevin#1 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,'')" />
我也是在论坛里看见的。
kevin#1 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
  • 打赏
  • 举报
回复
请问正则表达式的高手在哪里?

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧