正则表达式,允许使用utf-8字符但限制下划线abd特殊字符(除了这一个 - )。
它允许下划线。我想限制它。
这是我的演示代码:
https://plnkr.co/edit/Solap6eBGssvn7wVjkFn?p=preview
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="style.css">
<script src="script.js"></script>
</head>
<body>
<SCRIPT LANGUAGE="JavaScript">
<!--
function demoMatchClick() {
var re = new RegExp(document.demoMatch.regex.value);
if (document.demoMatch.subject.value.match(re)) {
alert("Successful match");
} else {
alert("No match");
}
}
</SCRIPT>
<P>regEx for unicode characters :</P>
<FORM ID="demoMatch" NAME="demoMatch" METHOD=POST ACTION="javascript:void(0)">
<P>Regexp:
<INPUT TYPE=TEXT NAME="regex" VALUE="^([^\x00-\x7F]|[\w_\ \-])+$" SIZE=50>
</P>
<P>Subject string:
<INPUT TYPE=TEXT NAME="subject" VALUE="This is a test of the JavaScript RegExp object" SIZE=50>
</P>
<P>
<INPUT TYPE=SUBMIT VALUE="Test Match" ONCLICK="demoMatchClick()">
</P>
</FORM>
</body>
</html>
答案 0 :(得分:2)
不要使用一些jQuery。检查输入键是否关闭,如果是减去AND移位,请阻止它。
HTML
<input type="text" class="js-input">
JS
// get field
var field = document.querySelector('.js-input');
// add keydown listener
field.addEventListener('keydown', function(e) {
// 189 === minus
// with shift === _
if (e.which === 189 && e.shiftKey === true) {
e.preventDefault();
}
});
演示: https://jsfiddle.net/jrck9m2r/1/
编辑: @Gaurav的答案不起作用:https://jsfiddle.net/Ley8mc19/2/
答案 1 :(得分:1)
使用一些jquery
$('input').on('input propertychange', function(event){
if(event.which==95){
return false;
}
})
95是_
的ASCII字符,这个jquery会检测到你写的_
返回false会停止写它