正規表示式

2022-02-21 20:30:03 字數 2684 閱讀 4950

正規表示式的一些方法:

test方法:查詢字串中是否匹配正規表示式,如果匹配返回結果是:true,否則返回false;形式:reg.test(str)

exec方法:查詢匹配的正規表示式

如果匹配的話返回結果是乙個陣列,陣列0元素是整個的匹配,1-n元素是各個子匹配,陣列有三個屬性:

input:返回整個字串,

index:返回匹配的子字串在整個字串的位置

lastindex:返回匹配的子字串最乙個字元的下乙個字元

如果不匹配的話返回的是值是null

有全域性識志(g)與沒有全域性識別符號的話,區別很大,第一次呼叫的話返回the,第二次呼叫返回rain,第三次呼叫返回in...,如果沒有的話不管呼叫多少

次返回的都是the,

var src = "the rain in spain falls mainly in the plain.";

var re = /\w+/g;    

var arr;

alert(src.match(re))//有g的話,返回[the,rain,in,spain,falls,mainly,in,the,plain.]如果沒有g的話則返加[the]

var u="";

var s=/(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/;

var a=s.exec(u);

for(i=1;imatch方法:結果是返回乙個陣列,如果有全域性識別符號的話,有g的話,返回[the,rain,in,spain,falls,mainly,in,the,plain.]如果沒有g的話則返加[the],形

式:str.match(reg)

search方法:返回匹配的的字串的首字元在整個表示式中的偏移位置,如果不匹配的話則返回-1,形式:str.search(reg),有沒有全域性識別符號都一樣

split()方法:結果是乙個字串陣列,在 stingobj 中每個出現 separator 的位置都要進行分解。separator 不作為任何陣列元素的部分返回。有個例外的地方:

正規表示式中有分組時則將匹配的結果也作為陣列的一部分返回,匹配的空格也作為陣列一部分返回,正確形式:/\n|\r/g,

以下是常用的一些匹配規則:

匹配中文字元的正規表示式: [\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- ./?%&=]*)?

以下是例子:

利用正規表示式限制網頁表單裡的文字框輸入內容:

用正規表示式限制只能輸入中文:onkeyup="value=value.replace(/[^\u4e00-\u9fa5]/g,")"

onbeforepaste="clipboarddata.setdata('text',clipboarddata.getdata('text').replace(/[^\u4e00-\u9fa5]/g,"))"

1.用正規表示式限制只能輸入全形字符: onkeyup="value=value.replace(/[^\uff00-\uffff]/g,")"

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.字串的replace:

str.replace(/(<(\w+)[^>]*?\/>)/g,function(all, front, tag){})這個是匹配標籤符例,all表示總個匹配,front表示第乙個分組,tag表示第二個分組

5.cookie中取值

reg = /(?:^|;)cookiename([^;]*)/

6.url中取值

reg = /[?&]keyname=([^&]*)/

7.classname的變換

document.getelementbyid('aa').classname += 'classname'

document.getelementbyid('aa').classname =

document.getelementbyid("myelement").classname.replace(/(?:^|\s)myclass(?!\s)/,'');

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 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 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式 表示式

網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...

Linux正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...