簡體   English   中英

jQuery中的正則表達式

[英]Regular expression in jQuery

我是一名PHP程序員,Java語言對我來說是新的。 現在,我正在閱讀一些有關Java正則表達式的手冊。 我無法使用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>

Found是一個匹配數組(如果未找到,則為null)。 嘗試更改以下內容: $('div#write3').text(found); 到這個$('div#write3').text(found[0]);

有關更多信息,請參見此處

Drackir是正確的 ,但是錯過了您的工作示例與未工作示例之間的區別中更有趣的一點。 document.write需要一個字符串,並且數組的toString方法將自動調用。 jQuery的text可以采用字符串或函數,因此不會自動調用數組的toString

真正平行的示例是:

document.write(found); 

$('div#write3').text(found.toString());

http://jsfiddle.net/QyFPE/5/

  1. 您無需將標頭,文檔類型等放置在jsfiddle中,這些塊會將代碼放置在適當的位置。
  2. 這應該可行,我所做的唯一更改是將內容放置在正確的位置(並取消了分組模式,以在章號中捕獲子組數字)

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 )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM