我正在使用Jquery 1.3,这是我隔离了在firebug中抛出错误的代码的代码,如下所示:“G未定义”
var product = $("#id :selected"); // This is a dropdown
var prodTxt = product.text(); // Returns string as expected
var price = prodTxt.match(/\$[0-9]{3}/); // Commenting this out removes the error.
//var price = prodTxt.match(/\$[0-9]*/);
我认为它与正则表达式中的* /有关,但仍然不起作用。
正则表达式查找美元符号所示的任何价格。
我想还有其他解决办法,我可能会这样做,但我仍然对我做错了什么感到困惑。谢谢你的帮助。
var price = String(prodTxt.match(/\$[0-9]{3}/));
不确定为什么会有效。我敢肯定比我更聪明的人可以解释如何不强调它会激怒不祥的“g”变量。
答案 0 :(得分:2)
我没有得到那个错误。请注意.match()
返回一个数组,因此您可能需要通过索引[0]
访问匹配项。
试一试: http://jsfiddle.net/dJ294/
$("#id").change(function() {
var product = $("#id :selected"); // This is a dropdown
var prodTxt = product.text(); // Returns string as expected
var price = prodTxt.match(/\$[0-9]{3}/); // Commenting this out removes the error.
//var price = prodTxt.match(/\$[0-9]*/);
// Access match by its index number
$('body').append('<br/>' + price[0]);
});
答案 1 :(得分:0)
问题出现在匹配线之后。最有可能的是,当匹配返回数组时,当您尝试将“price”变量用作字符串时,会导致此问题。