我在JS中有这个功能:
function test(value, requirement)
{
console.log("value: '" + value + "' requirement: '" + requirement + "'");
var regExp = new RegExp(requirement, '');
console.log("regExp: " + regExp);
var str = "" + value;
console.log("str: " + str);// [1]
var ok = str.test(regExp);// [2]
console.log("ok: " + ok); // [3]
return ok;
}
我在启用了Firebug的Firefox中执行它,控制台显示:
value: '123' requirement: '^123$'
regExp: /^123$/
str: 123
直到1一切都按预期工作。为什么[3]没有执行? [2]的问题是什么?如何解决?
编辑:我使用了来自here的代码(抱歉,它是德语)并且控制台中没有错误。
答案 0 :(得分:1)
test
是RegExp的一种方法,而不是String:
regExp.test(str)
答案 1 :(得分:1)
test()
是RegExp的一种方法,而不是字符串 - 你需要这个:
var ok = regExp.test(str); // [2]
(另外,您应该始终在JavaScript控制台打开的情况下运行您的代码 - 这会显示一条错误消息,可以帮助您识别问题。)
答案 2 :(得分:0)
语法错误
应该是
regExp.test(str)
test是regEx的一种方法。 type string没有任何名为" test"
的方法