关于从页面取得的正则表达式验证出错的问题?这个问题挺奇怪的,非常奇怪,哪位遇到过。。。 TO hbhbhbhbhb1021 :\\\\d+ 试过了,不好用。To numa001 :也是一样。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 两种情况,本来以为要多转意的,已经测试了,try it<input name="haha"><input name="re" value="\d+"><input name="button1" type="button" value="test" onclick="show(document.getElementById('re').value,document.getElementById('haha').value)"><script language=javascript>function show(validChar,inputValue){ var regexStr="^"+validChar+"$"; var regex=new RegExp(regexStr); alert(regex.test(inputValue)); }</script><input name="haha"><input name="button1" type="button" value="test" onclick="show('\\d+',document.getElementById('haha').value)"><script language=javascript>function show(validChar,inputValue){ var regexStr="^"+validChar+"$"; var regex=new RegExp(regexStr); alert(regex.test(inputValue)); }</script> to hbhbhbhbhb1021 :首先谢谢您的大力帮助。第一种做法和我实际使用比较相识,试了一下能通过,但为什么要去掉一个斜杠呢,想不明白,您能说说吗?另外去掉一个斜杠的做法似乎不太还,因为应用中还有汉字验证和邮件验证,首先在汉字验证这就通不过。往您明示。 原因就在于一些特殊字符需要转意上面了JS的正则如果在new RegExp中,这里是当字符串参数传进去的,所以需要转意,而直接写re=//这里则不需要转意,而在页面上获取的,有可能是已经经过转意后的字符,也有可能是没经过转意的,所以要具体情况具体看了。 <input type="text" name="name" validChar="[\u4E00-\u9FA5]{2-3}" />我的应用中是这样的,输入框的验证表达式作为属性写在input标签中,验证时取出验证,刚才去掉一个斜杠可以验证数字了,现在在汉字验证的地方遇到了麻烦,不知该如何处理? validChar这个是自定义的属性啊,具体调用是怎么调用的呢 我使用的getAttribute,validChar的值能够获得。 下面是我的具体调用语句。/*** 检查文本框*/function checkTextBox(vTextBox){ // 取得文本框中允许输入的合法文字正则表达式 var validChar=vTextBox.getAttribute("validChar"); // 取得文本框的输入 var inputValue=vTextBox.value; // 进行正则表达式验证 //alert("表达式为"+validChar); //alert("验证的字符串为"+inputValue); var regexStr="^"+validChar+"$"; var regex=new RegExp(regexStr); return regex.test(inputValue); } 这个问题不是出在那里了[\u4E00-\u9FA5]{2,3}是{2-3}这个不符合正则的规则 谢谢hbhbhbhbhb1021 的帮助,现在我已经全部解决问题了,这些写法如下:员工号:"\d{4}"姓名:"[\u4E00-\u9FA5]{2,3}" 邮件:"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"费用:"\d+(\.\d{0,2})*"主要就是将原来双斜杠的地方改成了单斜杠。虽然看上去比较别扭,但能运作比不运作强多了。如果能写双斜杠,还是规范的也能在java中用的正则表达式写法,就更好了,有什么办法能让它实现吗? document.getEelementsByName() js特殊字符处理. 关于FileSystemObject对象读取文件问题! 有什么办法把复选框变灰色(不可选) 谁有CSDN的树型菜单的原代码。发给我。给100分([email protected]) 谁知道呀! 高难度 !如何避免输入的值重复? 为什么打印的时候总是出现打印机选择框(再问) 请问怎么设置主页的窗口 iframe 为什么会有这种情况 100分, 求各种dropdown下拉效果
<input name="re" value="\d+">
<input name="button1" type="button" value="test" onclick="show(document.getElementById('re').value,document.getElementById('haha').value)">
<script language=javascript>
function show(validChar,inputValue){
var regexStr="^"+validChar+"$";
var regex=new RegExp(regexStr);
alert(regex.test(inputValue));
}
</script>
<input name="haha">
<input name="button1" type="button" value="test" onclick="show('\\d+',document.getElementById('haha').value)">
<script language=javascript>
function show(validChar,inputValue){
var regexStr="^"+validChar+"$";
var regex=new RegExp(regexStr);
alert(regex.test(inputValue));
}
</script>
第一种做法和我实际使用比较相识,试了一下能通过,但为什么要去掉一个斜杠呢,想不明白,您能说说吗?
另外去掉一个斜杠的做法似乎不太还,因为应用中还有汉字验证和邮件验证,首先在汉字验证这就通不过。往您明示。
JS的正则如果在new RegExp中,这里是当字符串参数传进去的,所以需要转意,而直接写re=//这里则不需要转意,
而在页面上获取的,有可能是已经经过转意后的字符,也有可能是没经过转意的,所以要具体情况具体看了。
name="name"
validChar="[\u4E00-\u9FA5]{2-3}"
/>我的应用中是这样的,输入框的验证表达式作为属性写在input标签中,验证时取出验证,刚才去掉一个斜杠可以验证数字了,现在在汉字验证的地方遇到了麻烦,不知该如何处理?
* 检查文本框
*/
function checkTextBox(vTextBox){
// 取得文本框中允许输入的合法文字正则表达式
var validChar=vTextBox.getAttribute("validChar");
// 取得文本框的输入
var inputValue=vTextBox.value;
// 进行正则表达式验证
//alert("表达式为"+validChar);
//alert("验证的字符串为"+inputValue);
var regexStr="^"+validChar+"$";
var regex=new RegExp(regexStr);
return regex.test(inputValue);
}
[\u4E00-\u9FA5]{2,3}
是{2-3}这个不符合正则的规则
这些写法如下:
员工号:"\d{4}"
姓名:"[\u4E00-\u9FA5]{2,3}"
邮件:"\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*"
费用:"\d+(\.\d{0,2})*"主要就是将原来双斜杠的地方改成了单斜杠。虽然看上去比较别扭,但能运作比不运作强多了。如果能写双斜杠,还是规范的也能在java中用的正则表达式写法,就更好了,有什么办法能让它实现吗?