我在JSfiddle上有以下代码:
$(document).ready(function() {
$('.testThis').click(function() {
$('.regexValidation').each(function() {
if ($(this).val() != "" || $(this).val() != null) {
// Check the regex
var expression = new RegExp('/^[0-9a-z_]+$/i');
var myVal = $(this).val();
if (expression.test(myVal) == true) {
// All is okay
alert("OK");
} else {
alert("Error");
}
}
});
});
});
预定的计划是只允许使用字母数字和下划线。禁止空格和标点等。
我无法弄清楚为什么会出错,但它总是会为测试返回false。
答案 0 :(得分:8)
你的语法错了。
将其更改为var expression = /^[0-9a-z_]+$/i;
与PHP不同,Javascript支持正则表达式文字语法/.../
创建RegExp
对象。
RegExp
构造函数将正则表达式作为字符串,不带分隔符
因此,您也可以写new RegExp('^[0-9a-z_]+$', 'i')
答案 1 :(得分:5)
从RegExp中删除引号:
var expression = new RegExp(/^[0-9a-z_]+$/i);
答案 2 :(得分:1)
取出这样的引号:new RegExp(/^[0-9a-z_]+$/i);
答案 3 :(得分:0)
在正则表达式的开头和结尾使用斜杠“/”而不是引号。
代码,应该是这样的 -
public void processFinish(ArrayList<String> output)