『壹』 求教js高手:ipv6怎麼轉換為10進制數(注意要考慮到ipv6的各種簡寫方式。)
先把16進制轉成2進制 在把2進制轉成10進滑陸清制 或者直接用計算器轉悉喚
FE80:1C2D:1DAC:641D::/信前64
『貳』 尋 js正則表達式
js常用正則表達式
整數或者小數:^[0-9]+\.{0,1}[0-9]{0,2}$
只能輸入數字:"^[0-9]*$"。
只能輸入n位的數字:"^\d{n}$"。
只能輸入至少n位的數字:"^\d{n,}$"。
只能輸入m~n位的數字:。"^\d{m,n}$"
只能輸入零和非零開頭的數字:"^(0|[1-9][0-9]*)$"。
只能輸入有兩位小數的正實數:"^[0-9]+(.[0-9]{2})?$"。
只能輸入有1~3位小數的正實數:"^[0-9]+(.[0-9]{1,3})?$"。
只能輸入非零的正整數:"^\+?[1-9][0-9]*$"。
只能輸入非零的負整數:"^\-[1-9][]0-9"*$。
只能輸入長度為3的字元:"^.{3}$"。
只能輸入由26個英文字母組成的字元串:"^[A-Za-z]+$"。
只能輸入由26個大寫英文字母組成的字元串:"^[A-Z]+$"。
只能輸入由26個小寫英文字母組成的字元串:"^[a-z]+$"。
只能輸入由數字和26個英文字母組成的字元串:"^[A-Za-z0-9]+$"。
只能輸入由數字、26個英文字母或者下劃線組成的字元串:"^\w+$"。
驗證用戶密碼:"^[a-zA-Z]\w{5,17}$"正確格式為:以字母開頭,長度在6~18之間,只能包含字元、數字和下劃線。
驗證是否含有^%&',;=?$\"等字元:"[^%&',;=?$\x22]+"。
只能輸入漢字:"^[\u4e00-\u9fa5]{0,}$"
驗證Email地址:"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"。
驗證InternetURL:"^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$"。
驗證電話號碼:"^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$"正確格式為:"XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX"。
驗證身份證號(15位或18位數字):"^\d{15}|\d{18}$"。
驗證一年的12個月:"^(0?[1-9]|1[0-2])$"正確格式為:"01"~"09"和"1"~"12"。
驗證一個月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"正確格式為;"01"~"09"和"1"~"31"。 匹配中文字元的正則表達式: [\u4e00-\u9fa5]
匹配雙位元組字元(包括漢字在內):[^\x00-\xff]
應用:計算字元串的長度(一個雙位元組字元長度計2,ASCII字元計1)
String.prototype.len=function(){return this.replace(/[^\x00-\xff]/g,"aa").length;}
匹配空行的正則表達式:\n[\s| ]*\r
匹配html標簽的正則表達式:<(.*)>(.*)<\/(.*)>|<(.*)\/>
匹配首尾空格的正則表達式:(^\s*)|(\s*$)
應用:javascript中沒有像vbscript那樣的trim函數,我們就可以利用這個表達式來實現,如下:
String.prototype.trim = function()
{
return this.replace(/(^\s*)|(\s*$)/g, "");
}
利用正則表達式分解和轉換IP地址:
下面是利用正則表達式匹配IP地址,並將IP地址轉換成對應數值的Javascript程序:
function IP2V(ip)
{
re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //匹配IP地址的正則表達式
if(re.test(ip))
{
return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
}
else
{
throw new Error("Not a valid IP address!")
}
}
不過上面的程序如果不用正則表達式,而直接用split函數來分解可能更簡單,程序如下:
var ip="10.100.20.168"
ip=ip.split(".")
alert("IP值是:"+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))
匹配Email地址的正則表達式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配網址URL的正則表達式:http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
利用正則表達式限制網頁表單里的文本框輸入內容:
用正則表達式限制只能輸入中文:onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"
用正則表達式限制只能輸入全形字元: onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"
用正則表達式限制只能輸入數字:onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
用正則表達式限制只能輸入數字和英文:onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
匹配中文字元的正則表達式: [\u4e00-\u9fa5]
評註:匹配中文還真是個頭疼的事,有了這個表達式就好辦了
匹配雙位元組字元(包括漢字在內):[^\x00-\xff]
評註:可以用來計算字元串的長度(一個雙位元組字元長度計2,ASCII字元計1)
匹配空白行的正則表達式:\n\s*\r
評註:可以用來刪除空白行
匹配HTML標記的正則表達式:<(\S*?)[^>]*>.*?|<.*? />
評註:網上流傳的版本太糟糕,上面這個也僅僅能匹配部分,對於復雜的嵌套標記依舊無能為力
匹配首尾空白字元的正則表達式:^\s*|\s*$
評註:可以用來刪除行首行尾的空白字元(包括空格、製表符、換頁符等等),非常有用的表達式
匹配Email地址的正則表達式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
評註:表單驗證時很實用
匹配網址URL的正則表達式:[a-zA-z]+://[^\s]*
評註:網上流傳的版本功能很有限,上面這個基本可以滿足需求
匹配帳號是否合法(字母開頭,允許5-16位元組,允許字母數字下劃線):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
評註:表單驗證時很實用
匹配國內電話號碼:\d{3}-\d{8}|\d{4}-\d{7}
評註:匹配形式如 0511-4405222 或 021-87888822
匹配騰訊qq號:[1-9][0-9]{4,}
評註:騰訊QQ號從10000開始
匹配中國郵政編碼:[1-9]\d{5}(?!\d)
評註:中國郵政編碼為6位數字
匹配身份證:\d{15}|\d{18}
評註:中國的身份證為15位或18位
匹配ip地址:\d+\.\d+\.\d+\.\d+
評註:提取ip地址時有用
匹配特定數字:
^[1-9]\d*$ //匹配正整數
^-[1-9]\d*$ //匹配負整數
^-?[1-9]\d*$ //匹配整數
^[1-9]\d*|0$ //匹配非負整數(正整數 + 0)
^-[1-9]\d*|0$ //匹配非正整數(負整數 + 0)
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$ //匹配正浮點數
^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$ //匹配負浮點數
^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$ //匹配浮點數
^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$ //匹配非負浮點數(正浮點數 + 0)
^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$//匹配非正浮點數(負浮點數 + 0)
評註:處理大量數據時有用,具體應用時注意修正
匹配特定字元串:
^[A-Za-z]+$//匹配由26個英文字母組成的字元串
^[A-Z]+$//匹配由26個英文字母的大寫組成的字元串
^[a-z]+$//匹配由26個英文字母的小寫組成的字元串
^[A-Za-z0-9]+$//匹配由數字和26個英文字母組成的字元串
^\w+$//匹配由數字、26個英文字母或者下劃線組成的字元串
評註:最基本也是最常用的一些表達式
整理出來的一些常用的正則表達式所屬分類: JScript (三)
Email : /^\w+([-+.]\w+)*@\w+([-.]\\w+)*\.\w+([-.]\w+)*$/
isEmail1 : /^\w+([\.\-]\w+)*\@\w+([\.\-]\w+)*\.\w+$/;
isEmail2 : /^.*@[^_]*$/;
Phone : /^((\(\d{3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}$/
Mobile : /^((\(\d{3}\))|(\d{3}\-))?13\d{9}$/
Url : /^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/
IdCard : /^\d{15}(\d{2}[A-Za-z0-9])?$/
Currency : /^\d+(\.\d+)?$/
Number : /^\d+$/
Code : /^[1-9]\d{5}$/
QQ : /^[1-9]\d{4,8}$/
Integer : /^[-\+]?\d+$/
Double : /^[-\+]?\d+(\.\d+)?$/
English : /^[A-Za-z]+$/
Chinese : /^[\u0391-\uFFE5]+$/
UnSafe : /^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/
PassWord :^[\\w]{6,12}$
ZipCode : ^[\\d]{6}
/^(\+\d+ )?(\(\d+\) )?[\d ]+$/; //這個是國際通用的電話號碼判斷
/^(1[0-2]\d|\d{1,2})$/; //這個是年齡的判斷
/^\d+\.\d{2}$/; //這個是判斷輸入的是否為貨幣值
<!-- IP地址有效性驗證函數-->
<script language=javascript runat=server>
ip_ip = '(25[0-5]|2[0-4]\\d|1\\d\\d|\\d\\d|\\d)';
ip_ipdot = ip + '\\.';
isIPaddress = new RegExp('^'+ip_ipdot+ip_ipdot+ipdot+ip_ip+'$');
</script>
應用:計算字元串的長度(一個雙位元組字元長度計2,ASCII字元計1)
String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;}
應用:javascript中沒有像vbscript那樣的trim函數,我們就可以利用這個表達式來實現,如下:
String.prototype.trim = function()
{
return this.replace(/(^\s*)|(\s*$)/g, "");
}
匹配空行的正則表達式:\n[\s| ]*\r
匹配HTML標記的正則表達式:/<(.*)>.*<\/\1>|<(.*) \/>/
匹配首尾空格的正則表達式:(^\s*)|(\s*$)
匹配Email地址的正則表達式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配網址URL的正則表達式:http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
^\d+$//匹配非負整數(正整數 + 0)
^[0-9]*[1-9][0-9]*$//匹配正整數
^((-\d+)|(0+))$//匹配非正整數(負整數 + 0)
^-[0-9]*[1-9][0-9]*$//匹配負整數
^-?\d+$//匹配整數
^\d+(\.\d+)?$//匹配非負浮點數(正浮點數 + 0)
^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$//匹配正浮點數
^((-\d+(\.\d+)?)|(0+(\.0+)?))$//匹配非正浮點數(負浮點數 + 0)
^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$ //匹配負浮點數
^(-?\d+)(\.\d+)?$
『叄』 JS如何將字元串中的IP地址替換為IP地址
//將CString 型IP地址在IPAddressCtrl中顯示伍笑
CString strIP="192.168.1.1";
DWORD dwIP;
dwIP = inet_addr(strIP);
unsigned char *pIP = (unsigned char*)&dwIP;
m_ipAddr.SetAddress(*pIP, *(pIP+1), *(pIP+2), *(pIP+3));
//嫌搜將IPAddressCtrl中的IP地址獲得並轉換成CString型
unsigned char *pIP;
CString strIP;
DWORD dwIP;
m_ipAddr.GetAddress(dwIP);
pIP = (unsigned char*)&dwIP;
strIP.Format("腔者含%u.%u.%u.%u",*(pIP+3), *(pIP+2), *(pIP+1), *pIP);
『肆』 如何用js獲取客戶端IP地址
js獲取的ip地址是:自動配置的IPv4地址:
<OBJECT id=locator classid=CLSID:76A64158-CB41-11D1-8B02-00600806D9B6 VIEWASTEXT></OBJECT>
<OBJECT id=foo classid=CLSID:75718C9A-F029-11d1-A1AC-00C04FB6C223></OBJECT>
<SCRIPT language=JScript>
var service = locator.ConnectServer();
var MACAddr ;
var IPAddr ;
var DomainAddr;
var sDNSName;
service.Security_.ImpersonationLevel=3;
service.InstancesOfAsync(foo, 'Win32_NetworkAdapterConfiguration');
</SCRIPT>
<FORM id=formfoo name=formbar action=NICPost.asp method=post>
<INPUT value=00:05:5D:0E:C7:FA name=txtMACAddr>
<INPUT value=58.245.184.191 name=txtIPAddr >
<INPUT value=typ name=txtDNSName >
</FORM>
『伍』 如何用js或者jquery獲取客戶端的IP地址
1,js取得IP地址的方法一
<script src="http://pv.sohu.com/cityjson?ie=utf-8"></script>
<script type="text/<A class=infotextkey href="http://www.jb51.net/" target=_blank>javascript</A>">
document.write(returnCitySN["cip"]+','+returnCitySN["cname"])
</script>
2,js取得IP地址的方法二
<script language="javascript" type="text/javascript" src="http://fw.qq.com/ipaddress">
</script>
<script>document.write("你的IP是:"+IPData[0]+",來自:"+IPData[2]);
</script>
3,js取得ip地址的方法三,騰訊IP,轉UTF-8:
<script type="text/javascript" src="http://fw.qq.com/ipaddress" charset="gb2312"></script>
$(document).ready(function() {
$("#ip").val(IPData[0]);
$("#add").val(IPData[2]);
})
『陸』 JavaScript網頁特效範例寶典的目錄
第1章窗口/框架與導航條設計1
1.1彈出窗口控制2
實例001打開新窗口顯示廣告信息
實例002定時打開窗口4
實例003通過按鈕創建窗口5
實例004自動關閉的廣告窗口6
實例005控制彈出窗口居中顯示7
實例006彈出的窗口之Cookie控制9
實例007為彈出的窗口加入關閉按鈕11
實例008關閉彈出窗口時刷新父窗口12
實例009關閉IE主窗口時,不彈出詢問對話框13
1.2彈出網頁對話框14
實例010彈出網頁模式對話框14
實例011彈出全屏顯示的網頁模式對話框16
實例012網頁拾色器18
實例013日期選擇器21
1.3窗口的動畫效果26
實例014頁面自動滾動26
實例015打開窗口特殊效果27
實例016動態顯示窗口29
實例017慢慢放大的窗口30
實例018下降式瀏覽器32
實例019旋轉的窗口33
實例020移動的窗口34
實例021震動的窗口35
實例022彈出廣告窗口36
1.4窗口控制37
實例023窗口始終在最上面38
實例024窗口的最小化、最大化39
實例025頻道方式窗口41
實例026全屏顯示42
實例027設置窗口大小和位置43
實例028刷新當前頁44
實例029自動最大化45
實例030自定義導航控制面板46
實例031根據用戶解析度自動調整窗口48
1.5窗口的其他效果49
實例032打開窗口時顯示對話框50
實例033使窗口背景透明50
實例034立體窗口52
實例035動態標題欄53
實例036固定大小的窗口54
1.6框架的應用55
實例037框架集的嵌套56
實例038在網頁中應用浮動框架58
實例039創建空白框架60
實例040居中顯示框架頁62
1.7無邊框窗口63
實例041全屏顯示無邊框有滾動條的窗口63
實例042應用CSS+DIV實現指定尺寸無邊框無滾動條窗口65
實例043應用JavaScript實現指定尺寸無邊框無滾動條窗口67
1.8水平導航條應用69
實例044圖片按鈕導航條69
實例045導航條的動畫效果71
實例046不用圖片實現質感導航條72
1.9下拉菜單式導航條73
實例047二級導航菜單74
實例048半透明背景的下拉菜單76
實例049展開式導航條80
實例050用層製作下拉菜單181
實例051用層製作下拉菜單284
1.10側導航條設計86
實例052自動隱藏式菜單87
實例053收縮式導航菜單89
實例054樹狀導航菜單91
第2章表單及表單元素95
2.1文本框/編輯框/隱藏域組件96
實例055獲取文本框/編輯框/隱藏域的值96
實例056自動計算金額97
實例057設置文本框的只讀屬性98
實例058限制多行文本域輸入的字元個數100
實例059自動選擇文本框/編輯框中的文字102
實例060按下回車鍵時自動切換焦點103
2.2下拉列表/菜單104
實例061獲取下拉列表/菜單的值104
實例062遍歷多選擇下拉列表105
實例063在下拉列表中進行多選移除106
實例064將數組中的數據添加到下拉菜單中107
實例065應用下拉菜單選擇所要聯機的網站108
實例066多級級聯菜單110
實例067可以輸入文字的下拉菜單111
實例068根據下拉菜單的值顯示不同控制項112
實例069分級下拉列表113
2.3單選按鈕組114
實例070不提交表單獲取單選按鈕的值114
實例071選中單選按鈕後顯示其他表單元素116
實例072通過單選按鈕控制其他表單元素是否可用117
2.4復選框117
實例073不提交表單獲取復選框的值118
實例074控制復選框的全選或反選118
實例075隻有一個復選框時控制復選框的全選或反選119
2.5密碼域120
實例076讓您的密碼域更安全120
實例077不提交表單自動檢測密碼域是否相同121
2.6表單應用122
實例078通過JavaScript控製表單的提交與重置122
實例079帶記憶功能的表單123
實例080防止表單重復提交124
實例081自動提交表單125
實例082通過for循環獲取表單元素的中文名稱126
實例083可以提交到不同處理頁的表單127
第3章實用JavaScript函數129
3.1數據驗證130
實例084通過正則表達式驗證日期130
實例085驗證輸入的日期格式是否正確132
實例086檢查表單元素是否為空134
實例087驗證E-mail是否正確135
實例088通過正則表達式驗證電話號碼137
實例089驗證輸入的字元串是否為漢字139
實例090驗證身份證號碼140
實例091驗證用戶名和密碼142
實例092驗證車牌號碼144
實例093驗證網站地址145
實例094驗證數量和金額147
實例095驗證字元串是否以指定字元開頭149
實例096限制輸入字元串的長度150
3.2字元串處理152
實例097小寫金額轉換為大寫金額152
實例098去除字元串中的空格155
實例099轉換輸入文本中的回車和空格156
實例100將數字字元串格式化為指定長度158
實例101把一個長數字分位顯示159
實例102將RGB格式的顏色值轉換為十六進制格式161
實例103將IP地址轉換為對應的數值163
實例104從指定URL中提取文件名164
3.3隨機函數166
實例105隨機產生指定位數的驗證碼166
實例106生成隨機字元串167
3.4日期與時間169
實例107顯示長日期格式的系統日期169
實例108實時顯示系統時間171
第4章日期和時間173
4.1日期時間顯示174
實例109在標題欄中顯示日期時間174
實例110使用toLocaleString()方法獲取本地時間176
實例111全中文顯示日期176
實例112在狀態欄中顯示日期時間178
實例113使用數組顯示星期179
實例114在表格中顯示時間180
實例115退出頁面時顯示停留時間181
實例116顯示用戶在頁面的停留時間182
實例117顯示最後修改時間183
4.2日期時間演算法184
實例118計算某一天是星期幾184
實例119判斷指定年份是否為閏年186
實例120計算從出生到現在度過的時間187
實例121返回兩個日期之間的間隔小時188
實例122倒計時190
實例123訪問時間限制191
實例124計步器192
4.3日期時間特效194
實例125分時問候194
實例126節日提示195
實例127倒影時鍾196
實例128帶陰影的時鍾199
實例129動態石英鍾200
實例130生日提醒器203
實例131數字時鍾205
實例132各地時間表206
實例133位於頁面頂層的時鍾209
第5章文字特效213
5.1文字的顏色變換214
實例134簡單文字變色214
實例135文字變色215
實例136變換的文字216
實例137描邊文字217
實例138霓虹燈文字218
實例139追逐點亮的文字219
實例140螢光文字220
實例141發光文字的閃爍效果221
實例142文字的舞台燈光效果223
實例143製作彩色漸變文字動畫224
5.2改變文字大小226
實例144文字伸縮226
實例145動盪的文字227
實例146文字伸展228
實例147文字逐個放大230
實例148自動改變大小231
實例149選擇字體的大小232
5.3文字顯示效果234
實例150文字漸隱漸現234
實例151文字虛幻變化235
實例152文字虛幻抖動237
5.4指定文字位置238
實例153將文字置於工作區左上角238
實例154右上角文字239
實例155滑鼠移動文字241
5.5文字動態移動242
實例156文字自動滾屏242
實例157文字上下滾動243
5.6文字立體效果244
實例158文字的旋轉244
實例159立體旋轉文字246
實例160文字3D效果248
5.7文字動畫效果249
實例161反彈文字249
實例162飛舞的文字252
實例163飛翔的文字254
實例164平面旋轉的文字257
實例165輸出文字258
實例166文字打字效果259
實例167文字抖動261
實例168指向文字時飛出星形標記262
實例169文字的拋出效果264
5.8文字特殊效果265
實例170波浪文字265
實例171夢幻文字效果266
實例172屏風文字268
實例173文字陰影270
5.9其他270
實例174隨機顯示文字270
實例175文字加密及解密271
第6章超級鏈接特效275
6.1超級鏈接樣式276
實例176改變超級鏈接字體樣式276
實例177當滑鼠移動到超級鏈接時改變超級鏈接顏色277
實例178改變超級鏈接背景色278
6.2超級鏈接控制279
實例179建立E-mail超級鏈接280
實例180獲取頁面中的全部超級鏈接281
實例181將網站設為首頁282
實例182單擊滑鼠右鍵自動鏈接到指定網站283
實例183單擊超級鏈接將本頁加入收藏夾285
實例184訪問指定的鏈接地址286
實例185返回默認主頁287
實例186導航鏈接289
6.3超級鏈接特效291
實例187快速閃動頁面中的超級鏈接291
實例188滾動的超級鏈接提示信息292
實例189公告欄中顯示超級鏈接294
實例190顯示超級鏈接站點相關信息295
實例191顯示超級鏈接的提示信息296
實例192半透明背景的超級鏈接提示297
第7章操作表格299
7.1表格的顏色效果300
實例193閃爍的表格邊框300
實例194單元格邊框變色301
實例195選中的行變色302
7.2對單元格的焦點進行控制303
實例196選定表格中的單元格303
實例197左右移動單元格的信息304
實例198通過鍵盤使單元格焦點任意移動306
7.3對表格的行、列進行修改311
實例199動態製作表格311
實例200動態生成行或列313
實例201刪除表中的行314
7.4單元格的相關操作316
實例202隱藏及顯示單元格316
實例203編輯單元格中的文本信息318
實例204合並單元格320
實例205在表格中添加行及單元格322
實例206刪除表中的單元格324
7.5表格的特殊效果325
實例207透明表格326
實例208限製表格的寬度327
實例209表格的標題328
實例210表格的外陰影329
實例211立體表格329
實例212虛線邊框表格330
實例213表格作為分割線332
實例214表格向下展開332
第8章圖形圖像與多媒體335
8.1圖片大小336
實例215打開自定義大小的圖片336
實例216圖片放大縮小337
實例217通過滑鼠滾輪放大縮小圖片338
8.2圖片與滑鼠相關操作339
實例218跟隨滑鼠移動的圖片340
實例219可以左右拖動的圖片340
實例220隨意拖動圖片342
實例221當滑鼠經過圖片時顯示圖片344
實例222改變圖片獲取焦點時的狀態345
實例223抖動的圖片346
實例224滑鼠移動放大圖片347
8.3圖片與時間相關操作349
實例225定時隱藏圖片349
實例226根據時間變換頁面背景350
實例227使圖片不停閃爍352
實例228上下跳動的圖片352
實例229圖片左右晃動354
實例230飄舞的變形圖片356
8.4圖片的動畫效果358
實例231圖片翻轉效果359
實例232水波倒影特效360
實例233圖片漸隱漸現361
實例234圖片的探照燈效果362
實例235雷達掃描圖片特效363
實例236在頁面中旋轉的圖片365
實例237改變形狀的圖片366
實例238圖片在頁面浮動367
實例239隨機變化的網頁背景369
8.5選擇頭像370
實例240在列表中選擇圖片370
實例241在彈出的新窗口中選擇圖片372
8.6在頁面中播放圖片374
實例242幻燈片式播放圖片374
實例243無間斷的圖片循環滾動效果376
8.7圖片的其他效果377
實例244導航地圖377
8.8播放音樂378
實例245為網頁設置背景音樂378
實例246隨機播放背景音樂380
實例247MIDI音樂選擇381
8.9插入Flash動畫383
實例248插入Flash動畫383
實例249插入背景透明的Flash動畫384
8.10播放視頻文件385
實例250播放AVI文件385
實例251自製視頻播放器387
第9章頁面特效391
9.1頁面背景效果392
實例252背景固定居中392
實例253背景圖片縱向重復顯示393
實例254通過按鈕變換背景顏色395
實例255背景自動變色396
實例256百葉窗396
實例257漸隱漸顯的背景顏色398
實例258頁面縮小399
實例259頁面上下打開效果400
實例260頁面左右打開效果402
實例261頁面溶解效果404
9.2特殊頁面406
實例262頁首頁尾切換406
實例263調用下載頁面408
實例264程序載入頁面409
實例265顏色拾取器411
9.3廣告頁面415
實例266圖片總置於頂端415
實例267隨機顯示廣告416
實例268廣告隨滾動條漂移418
9.4頁面動畫效果419
實例269下雪419
實例270飄落的楓葉421
實例271下雨423
實例272背景的煙花效果425
實例273變色的圓圈427
實例274滾動的光環429
實例275星空極速飛入效果430
實例276閃爍的星星432
9.5其他434
實例277帶密碼的網頁434
實例278頁面左右滾動435
實例279動態移動的層437
實例280在頁面中顯示十字游標438
第10章狀態欄特效441
10.1狀態欄文字動畫442
實例281使狀態欄中的文字不停閃爍442
實例282文字從右向左依次彈出443
實例283文字從中間向兩邊展開445
實例284文字跑馬燈特效447
實例285文字依次顯示後快速收縮449
實例286文字的展開與收縮451
實例287狀態欄中的文字依次彈出452
10.2其他453
實例288在狀態欄顯示固定自定義信息453
實例289在狀態欄顯示滑鼠坐標454
實例290在狀態欄顯示特定的超級鏈接信息456
第11章報表與列印459
11.1Web列印460
實例291調用IE自身的列印功能實現列印460
實例292列印指定框架中的內容461
實例293利用WebBrowser列印462
實例294設置頁眉頁腳463
11.2利用Word列印報表465
實例295將頁面中的表格導出到Word並列印465
實例296打開指定的Word文檔並列印467
實例297在JSP中利用Word自動列印指定格式的會議記錄468
實例298在ASP中利用Word自動列印指定格式的會議記錄470
實例299在PHP中調用Word自動列印指定格式的會議記錄472
11.3利用Excel列印報表474
實例300將Web頁面中的數據導出到Excel474
實例301將Web頁面中的數據導出到Excel並自動列印476
11.4利用CSS樣式列印478
實例302利用CSS樣式列印頁面中的指定內容478
實例303利用CSS樣式分頁列印479
11.5套打郵寄產品單482
實例304列印匯款單482
實例305列印快遞單484
實例306列印信封485
第12章網站安全489
12.1禁止用戶復制網頁內容490
實例307禁止用戶復制網頁內容(方法一)490
實例308禁止用戶復制網頁內容(方法二)491
實例309禁止網頁另存為492
12.2禁止用戶刷新屏幕493
實例310屏蔽IE主菜單493
實例311屏蔽鍵盤相關事件494
實例312屏蔽滑鼠右鍵496
12.3登錄頁面497
實例313具有瀏覽器檢測功能的登錄頁面497
實例314防止SQL注入的登錄頁面498
實例315帶驗證碼的登錄頁面500
12.4其他501
實例316使用Script Encoder加密工具加密501
第13章HTML/CSS樣式503
13.1頁面效果504
實例317統一站內網頁風格504
實例318設置超級鏈接文字的樣式508
實例319網頁換膚509
實例320滾動文字512
實例321製作漸變背景513
13.2表格樣式514
實例322隻有外邊框的表格515
實例323彩色外邊框的表格516
實例324控製表格指定外邊框不顯示518
實例325背景顏色漸變的表格520
實例326表格隔行變色521
13.3滑鼠及滾動條樣式522
實例327顯示自定義滑鼠形狀522
實例328動畫游標524
實例329製作彩色滾動條525
13.4文字及列表樣式527
實例330應用刪除線樣式標記商品特價527
實例331在文字上方標注說明標記528
實例332指定圖標的列表項529
13.5文字濾鏡特效530
實例333文字的發光效果531
實例334文字的陰影效果532
實例335文字的漸變陰影效果533
實例336文字的圖案填充效果534
實例337文字的探照燈效果535
實例338文字的閃爍效果537
實例339文字的空心效果538
實例340文字的浮雕效果539
實例341文字的陽文效果540
實例342文字的雪雕效果541
實例343火焰字542
實例344文字扭曲動畫544
13.6圖片濾鏡特效545
實例345圖片的半透明效果545
實例346圖片的模糊效果546
實例347圖片的水波紋特效547
實例348圖片的灰度效果548
實例349圖片的動態說明文字549
第14章 JavaScript與XML553
14.1讀取XML文件554
實例350使用XML DOM對象讀取XML文件554
實例351使用XMLHttpRequest對象讀取XML文件557
14.2顯示XML文檔559
實例352使用CSS顯示XML文檔559
實例353使用XSL顯示XML文檔562
實例354使用IE XML數據島輸出XML文檔564
14.3操作XML565
實例355用JavaScript控制XML文檔的分頁顯示565
實例356通過操作XML數據島實現添加、刪除留言信息567
第15章JavaScript與ASP結合573
15.1彈出窗口/對話框控制574
實例357關閉彈出窗口時刷新父窗口574
實例358打開新窗口顯示詳細信息575
實例359彈出網頁模式對話框577
實例360日期選擇器580
實例361彈出提示對話框並重定向網頁584
實例362打開指定大小的新窗口並居中顯示586
15.2彈出確認對話框588
實例363刪除數據前彈出確認對話框588
實例364安全退出前彈出確認對話框590
15.3其他591
實例365遠程獲取其他網頁情報591
實例366樹狀導航菜單594
實例367使用XML實現不刷新頁面查詢數據596
第16章JavaScript與JSP結合601
16.1窗口與對話框602
實例368彈出提示對話框並重定向網頁602
實例369打開新窗口顯示詳細信息604
實例370打開指定大小的新窗口並居中顯示605
實例371彈出網頁模式對話框607
實例372關閉彈出窗口時刷新父窗口609
16.2無刷新技術611
實例373無刷新的用戶名檢測611
實例374無刷新的級聯下拉列表614
實例375使用XML實現不刷新頁面查詢數據616
16.3調用與控制619
實例376將查詢結果導出到Word619
實例377調用Excel621
實例378調用PowerPoint622
16.4其他623
實例379樹狀導航菜單623
第17章JavaScript與ASP.NET結合627
17.1窗口與對話框628
實例380使用JavaScript腳本彈出對話框628
實例381打開新窗口顯示詳細信息629
實例382關閉彈出窗口刷新父窗口631
實例383彈出網頁模式對話框633
實例384彈出全屏顯示網頁635
17.2其他637
實例385自動隱藏式菜單637
第18章JavaScript與PHP結合641
18.1窗口與對話框642
實例386彈出提示對話框並重定向網頁642
實例387關閉彈出窗口時自動刷新父窗口643
實例388在彈出的網頁模式對話框中選擇個性頭像645
實例389時間選擇器647
實例390彈出提示對話框並重定向網頁649
實例391刪除數據前彈出確認對話框650
18.2其他651
實例392樹狀導航菜單651
第19章綜合應用657
19.1計算器658
實例393簡單計算器658
實例394復雜計算器662
19.2日歷667
實例395精美日歷668
實例396帶農歷的日歷674
19.3購物車681
實例397添加至購物車682
實例398查看購物車684
實例399修改商品購買數量686
實例400從購物車中移去指定商品687
實例401清空購物車689
JavaScript程序開發範例寶典附錄691
『柒』 求一段javascript正則表達式,100分
以前搜集老改悶了很久 全給你了
匹配中文字元的正則表達式: [\u4e00-\u9fa5]
匹配雙位元組字元(包括漢字在內):[^\x00-\xff]
匹配空行的正則表達式:\n[\s| ]*\r
匹配HTML標記的正則表達式:/<(.*)>.*<\/\1>|<(.*) \/>/
匹配首尾空格的正則表達式:(^\s*)|(\s*$)
匹配Email地址的正則表達式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配網址URL的正則表達式:http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
(1)應用:計算字元串的長度(一個雙位元組字元長度計2,ASCII字元計1)
String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;}
(2)應用:javascript中沒有像vbscript那樣的trim函數,我們侍彎就可以利用這個表達式來實現
String.prototype.trim = function()
{
return this.replace(/(^\s*)|(\s*$)/g, "");
}
(3)應用:利用正則表達式分解和轉換IP地址
function IP2V(ip) //IP地址轉換成對應數值
{
re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //匹配IP地址的正則表達式
if(re.test(ip))
{
return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
}
else
{
throw new Error("Not a valid IP address!")
}
}
(4)應用:從URL地址中提取文件名的javascript程序
s="http://www.9499.net/page1.htm";
s=s.replace(/(.*\/){0,}([^\.]+).*/ig,"$2") ; //Page1.htm
(5)應用:利用正則表達式限制網頁表單里的文本框輸入內容
用正則表達式限制只能輸入中文:onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"
用殲如正則表達式限制只能輸入全形字元: onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"
用正則表達式限制只能輸入數字:onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
用正則表達式限制只能輸入數字和英文:onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
====================================================
正則表達式大全
正則表達式用於字元串處理,表單驗證等場合,實用高效,但用到時總是不太把握,以致往往要上網查一番。我將一些常用的表達式收藏在這里,作備忘之用。本貼隨時會更新。
匹配中文字元的正則表達式: [\u4e00-\u9fa5]
匹配雙位元組字元(包括漢字在內):[^\x00-\xff]
應用:計算字元串的長度(一個雙位元組字元長度計2,ASCII字元計1)
String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;}
匹配空行的正則表達式:\n[\s| ]*\r
匹配HTML標記的正則表達式:/<(.*)>.*<\/\1>|<(.*) \/>/
匹配首尾空格的正則表達式:(^\s*)|(\s*$)
應用:javascript中沒有像vbscript那樣的trim函數,我們就可以利用這個表達式來實現,如下:
String.prototype.trim = function()
{
return this.replace(/(^\s*)|(\s*$)/g, "");
}
利用正則表達式分解和轉換IP地址:
下面是利用正則表達式匹配IP地址,並將IP地址轉換成對應數值的javascript程序:
function IP2V(ip)
{
re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //匹配IP地址的正則表達式
if(re.test(ip))
{
return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
}
else
{
throw new Error("Not a valid IP address!")
}
}
不過上面的程序如果不用正則表達式,而直接用split函數來分解可能更簡單,程序如下:
var ip="10.100.20.168"
ip=ip.split(".")
alert("IP值是:"+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))
匹配Email地址的正則表達式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配網址URL的正則表達式:http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
利用正則表達式去除字串中重復的字元的演算法程序:[註:此程序不正確,原因見本貼回復]
var s="abacabefgeeii"
var s1=s.replace(/(.).*\1/g,"$1")
var re=new RegExp("["+s1+"]","g"?瓊?渦獢p?????浜睹扥潛桴牥摜極慢?瑨m?)
var s2=s.replace(re,"")
alert(s1+s2) //結果為:abcefgi
我原來在CSDN上發貼尋求一個表達式來實現去除重復字元的方法,最終沒有找到,這是我能想到的最簡單的實現方法。思路是使用後向引用取出包括重復的字元,再以重復的字元建立第二個表達式,取到不重復的字元,兩者串連。這個方法對於字元順序有要求的字元串可能不適用。
得用正則表達式從URL地址中提取文件名的javascript程序,如下結果為page1
s="http://www.9499.net/page1.htm"
s=s.replace(/(.*\/){0,}([^\.]+).*/ig,"$2")
alert(s)
利用正則表達式限制網頁表單里的文本框輸入內容:
用正則表達式限制只能輸入中文:onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"
用正則表達式限制只能輸入全形字元: onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"
用正則表達式限制只能輸入數字:onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
用正則表達式限制只能輸入數字和英文:onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
補充:
^\d+$ //匹配非負整數(正整數 + 0)
^[0-9]*[1-9][0-9]*$ //匹配正整數
^((-\d+)|(0+))$ //匹配非正整數(負整數 + 0)
^-[0-9]*[1-9][0-9]*$ //匹配負整數
^-?\d+$ //匹配整數
^\d+(\.\d+)?$ //匹配非負浮點數(正浮點數 + 0)
^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$ //匹配正浮點數
^((-\d+(\.\d+)?)|(0+(\.0+)?))$ //匹配非正浮點數(負浮點數 + 0)
^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$ //匹配負浮點數
^(-?\d+)(\.\d+)?$ //匹配浮點數
^[A-Za-z]+$ //匹配由26個英文字母組成的字元串
^[A-Z]+$ //匹配由26個英文字母的大寫組成的字元串
^[a-z]+$ //匹配由26個英文字母的小寫組成的字元串
^[A-Za-z0-9]+$ //匹配由數字和26個英文字母組成的字元串
^\w+$ //匹配由數字、26個英文字母或者下劃線組成的字元串
^[\w-]+(\.[\w?瓊?渦獢p?????浜睹扥潛桴牥摜極慢?瑨m?-]+)*@[\w-]+(\.[\w-]+)+$ //匹配email地址
^[a-zA-z]+://匹配(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$ //匹配url
利用正則表達式去除字串中重復的字元的演算法程序:
var s="abacabefgeeii"
var s1=s.replace(/(.).*\1/g,"$1")
var re=new RegExp("["+s1+"]","g")
var s2=s.replace(re,"")
alert(s1+s2) //結果為:abcefgi
===============================
如果var s = "abacabefggeeii"
結果就不對了,結果為:abeicfgg
正則表達式的能力有限
RE: totoro
謝謝你的指點,這個javascript正則表達式程序演算法確實有問題,我會試著找更好的辦法!!!
1.確認有效電子郵件格式
下面的代碼示例使用靜態 Regex.IsMatch 方法驗證一個字元串是否為有效電子郵件格式。如果字元串包含一個有效的電子郵件地址,則 IsValidEmail 方法返回 true,否則返回 false,但不採取其他任何操作。您可以使用 IsValidEmail,在應用程序將地址存儲在資料庫中或顯示在 ASP.NET 頁中之前,篩選出包含無效字元的電子郵件地址。
[Visual Basic]
Function IsValidEmail(strIn As String) As Boolean
' Return true if strIn is in valid e-mail format.
Return Regex.IsMatch(strIn, ("^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$")
End Function
[C#]
bool IsValidEmail(string strIn)
{
// Return true if strIn is in valid e-mail format.
return Regex.IsMatch(strIn, @"^([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$");
}
2.清理輸入字元串
下面的代碼示例使用靜態 Regex.Replace 方法從字元串中抽出無效字元。您可以使用這里定義的 CleanInput 方法,清除掉在接受用戶輸入的窗體的文本欄位中輸入的可能有害的字元。CleanInput 在清除掉除 @、-(連字元)和 .(句點)以外的所有非字母數字字元後返回一個字元串。
[Visual Basic]
Function CleanInput(strIn As String) As String
' Replace invalid characters with empty strings.
Return Regex.Replace(strIn, "[^\w\.@-]", "")
End Function
[C#]
String CleanInput(string strIn)
?瓊?渦獢p?????浜睹扥潛桴牥摜極慢?瑨m?{
// Replace invalid characters with empty strings.
return Regex.Replace(strIn, @"[^\w\.@-]", "");
}
3.更改日期格式
以下代碼示例使用 Regex.Replace 方法來用 dd-mm-yy 的日期形式代替 mm/dd/yy 的日期形式。
[Visual Basic]
Function MDYToDMY(input As String) As String
Return Regex.Replace(input, _
"\b(?<month>\d{1,2})/(?<day>\d{1,2})/(?<year>\d{2,4})\b", _
"${day}-${month}-${year}")
End Function
[C#]
String MDYToDMY(String input)
{
return Regex.Replace(input,
"\\b(?<month>\\d{1,2})/(?<day>\\d{1,2})/(?<year>\\d{2,4})\\b",
"${day}-${month}-${year}");
}
Regex 替換模式
本示例說明如何在 Regex.Replace 的替換模式中使用命名的反向引用。其中,替換表達式 ${day} 插入由 (?<day>...) 組捕獲的子字元串。
有幾種靜態函數使您可以在使用正則表達式操作時無需創建顯式正則表達式對象,而 Regex.Replace 函數正是其中之一。如果您不想保留編譯的正則表達式,這將給您帶來方便
4.提取 URL 信息
以下代碼示例使用 Match.Result 來從 URL 提取協議和埠號。例如,「http://www.contoso.com:8080/letters/readme.html」將返回「http:8080」。
[Visual Basic]
Function Extension(url As String) As String
Dim r As New Regex("^(?<proto>\w+)://[^/]+?(?<port>:\d+)?/", _
RegexOptions.Compiled)
Return r.Match(url).Result("${proto}${port}")
End Function
[C#]
String Extension(String url)
{
Regex r = new Regex(@"^(?<proto>\w+)://[^/]+?(?<port>:\d+)?/",
RegexOptions.Compiled);
return r.Match(url).Result("${proto}${port}");
}
今天有網友問:如何用正則表達式表示要麼是數字要麼是字母 是字母的話只能是一個字母 數字則無所謂?
我的回答是:
^[a-zA-Z]$|^\d+$
『捌』 關於JS獲取IP的寫法!
一、使用JS獲取客戶端IP的幾個方法
方法一(只針對IE且客戶端的IE允許AcitiveX運行,通過台:XP,SERVER03,2000)。
獲取客戶端IP代碼:
代碼如下:
<HTML>
<HEAD>
<TITLE>GetLocalIP</TITLE>
</HEAD>
<BODY>
獲取IP:
<script language="JavaScript"> function GetLocalIPAddr(){ var
oSetting = null; var ip = null; try{ oSetting = new
ActiveXObject("rcbdyctl.Setting"); ip = oSetting.GetIPAddress; if
(ip.length == 0){ return "沒有連接到Internet"; } oSetting = null; }catch(e){
return ip; } return ip; } document.write(GetLocalIPAddr()+"<br/>")
</script>
</BODY>
</HTML>
方法二(所有的平台及瀏覽器):
獲取客戶端處在網路中的IP,前提是客戶得聯網。使用的是新浪介面。
代碼如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>JavaScript獲取客戶端IP[利用新浪介面]</title>
</head>
<body>
<script type="text/javascript" src="http://counter.sina.com.cn/ip/" charset="gb2312"></script> <!--獲取介面數據,注意charset -->
<script type="text/javascript">
document.writeln("IP地址:"+ILData[0]+"<br />"); //輸出介面數據中的IP地址
document.writeln("地址類型:"+ILData[1]+"<br />"); //輸出介面數據中的IP地址的類型
document.writeln("地址類型:"+ILData[2]+"<br />"); //輸出介面數據中的IP地址的省市
document.writeln("地址類型:"+ILData[3]+"<br />"); //輸出介面數據中的IP地址的
document.writeln("地址類型:"+ILData[4]+"<br />"); //輸出介面數據中的IP地址的運營商
</script>
</body>
</html>
方法三(所有的平台及瀏覽器):
使用的搜狐介面
代碼如下:
<script src="http://pv.sohu.com/cityjson?ie=utf-8"></script>
<script type="text/javascript">
document.write(returnCitySN["cip"]+','+returnCitySN["cname"])
</script>