我是一名PHP编码员,Javascript对我来说是新手。现在我正在阅读一些关于Javascript中Regexp的手册。我无法使用jQuery。
以下是两个例子。
http://jsfiddle.net/borayeris/utG6H/这个有效:
<script type="text/javascript">
$(function(){
str = "For more information, see Chapter 3.4.5.1";
re = /(chapter \d+(\.\d)*)/i;
found = str.match(re);
document.write(found);
});
</script>
http://jsfiddle.net/borayeris/QyFPE/1/这不是:
<script type="text/javascript">
$(function(){
str = "For more information, see Chapter 3.4.5.1";
re = /(chapter \d+(\.\d)*)/i;
found = str.match(re);
$('div#write3').text(found);
});
</script>
标记:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>RegEx</title>
<script type="text/javascript" src="jquery-1.4.4.js"></script>
</head>
<body>
<div id="write3"></div>
</body>
</html>
答案 0 :(得分:5)
Found是一个匹配数组(如果没有找到则为null)。尝试更改此内容:$('div#write3').text(found);
这个$('div#write3').text(found[0]);
有关详细信息,请参阅here。
答案 1 :(得分:3)
Drackir is correct,但是错过了工作和不工作示例之间差异的更有趣点。 document.write
需要一个字符串,并自动调用该数组的toString
方法。 jQuery的text
可以使用字符串或函数,因此不会自动调用数组的toString
。
真正平行的例子是:
document.write(found);
和
$('div#write3').text(found.toString());
答案 2 :(得分:1)
答案 3 :(得分:1)
dom函数document.write将接受数组名作为参数,并可以打印所有元素
eg: <script language="JavaScript">
<!--
var myarray = new Array();
for (i = 0; i < 10; i++)
{
myarray[i] = i;
}
document.write(myarray);
// -->
</script>
will give 0,1,2,3,4,5,6,7,8,9
Where as .text() function can only accept a string as parameter
text( textString )