C#正則表達式語法應用詳解
C#正則表達式語法是什么樣子的呢?讓我們來看看:
圖片 src[^>]*[^/].(?:jpg|bmp|gif)(?:\"|\')
中文 ^([\u4e00-\u9fa5]+|[a-zA-Z0-9]+)$
網址 "\<a.+?href=['""](?!http\:\/\/)(?!mailto\:)(?>foundAnchor>[^'"">]+?)[^>]*?\>"
匹配中文字符的正則表達式: [\u4e00-\u9fa5]
匹配雙字節字符(包括漢字在內):[^\x00-\xff]
匹配空行的正則表達式:\n[\s| ]*\r
匹配HTML標記的正則表達式:/<(.*)>.*<\/\1>|<(.*) \/>/
匹配首尾空格的正則表達式:(^\s*)|(\s*$)(像vbscript那樣的trim函數)
匹配Email地址的正則表達式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配網址URL的正則表達式:http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?
以下是C#正則表達式語法應用例子:
利用正則表達式限制網頁表單里的文本框輸入內容:
用正則表達式限制只能輸入中文:onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')"
1.用正則表達式限制只能輸入全角字符:
- onbeforepaste="clipboardData.setData(
- 'text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"
2.用正則表達式限制只能輸入數字:
- onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste=
- "clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
3.用正則表達式限制只能輸入數字和英文:
- onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste=
- "clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
4.計算字符串的長度(一個雙字節字符長度計2,ASCII字符計1)
- String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;}
5.javascript中沒有像vbscript那樣的trim函數,我們就可以利用這個表達式來實現,如下:
- String.prototype.trim = function()
- {
- return this.replace(/(^\s*)|(\s*$)/g, "");
- }
6.下面是利用正則表達式匹配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("不是一個正確的IP地址!")
- }
- }
不過上面的程序如果不用正則表達式,而直接用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))
- (?<=>)[^>]*(?=<)
C#正則表達式語法應用的相關內容就向你介紹到這里,希望對你了解和學習C#正則表達式語法有所幫助。
【編輯推薦】