導航:首頁 > 編程語言 > jsnewregex

jsnewregex

發布時間:2023-02-21 02:06:04

㈠ 如何利用js正則表達式判斷ip地址的合法性

用正則表達式判斷吧:publicstaticvoidRunSnippet(){Regexrx=newRegex(@"((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))))");if(rx.IsMatch("192.168.130.11")){System.Console.WriteLine("IsIPaddress");}else{System.Console.WriteLine("IsnotIPaddress");}}IP地址的長度為32位,分為4段,每段8位,用十進制數字表示,每段數字范圍為0~255,段與段之間用英文句點「.」隔開。例如:某台計算機IP地址為10.11.44.100。分析IP地址的組成特點:250-255、200-249、0-199。這三種情況可以分開考慮,1.250-255:特點:三位數,百位是2,十位是5,個位是0~5,用正則表達式可以寫成:25[0-5]2.200-249:特點:三位數,百位是2,十位是0~4,個位是0~9,用正則表達式可以寫成:2[0-4]\d3.0-199:這個可以繼續分拆,這樣寫起來更加簡單明了.3.1.0-9:特點:一位數,個位是0~9,用正則表達式可以寫成:\d3.2.10-99:特點:二位數,十位是1~9,個位是0~9,用正則表達式可以寫成:[1-9]\d3.3.100-199:特點:三位數,百位是1,十位是0~9,個位是0~9,用正則表達式可以寫成:1\d{2}於是0-199用正則表達式可以寫成(1\d{2})|([1-9]?\d),這樣0~255的正則表達式就可以寫成(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))最後,得到IP地址的正則表達式:((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d))))其中有幾個需要注意的細節1.正則表達式規則之一:最先開始的匹配擁有最高的優先權,所以三位數的匹配放在二位數的前面。2.0.0.0.0和255.255.255.255是合法存在的IP地址。3.0.0.01.0在這里不被認為是合法的。

㈡ js中用正則表達式如何對用戶名進行基本驗證

^表示開始。$表示結束。例:Regex reg = new Regex(@"^\d{3,4}-\d{7,8}$");x0dx0a加了開始結束標記之後,輸入的數量和內容必須完全相同才為true(完全匹配)x0dx0a (\d,代表數字0-9)(\D,表示不是數字)(\w,表示a-z,A-Z,0-9,_)(\W 表示不是上面小w表示的)(\s 表示 空格。)x0dx0a 」*「 表示0到多個x0dx0a「+」 1到多個x0dx0a「?」 0個或者1個x0dx0a「[ ]「 (一個數到另一個數之間)自定義匹配內容x0dx0a「 |」或者x0dx0a 「{}」{最小個數,最大個數} 次數x0dx0a例如:郵箱驗證:x0dx0aRegex r = new Regex(@"^[\w]+@[\w].[A-Z|a-z]$");x0dx0a自己kankan琢磨一下就懂了

㈢ JS正則表達式基礎認知

        正則表達式,又叫規則表達式,英文名Regular Expression,本質是操作字元串

         1、模式匹配    表單驗證

         2、文本檢索    搜索

         3、替換        過濾

         簡單,方便,性能高

        var reg=new RegExp('規則','模式')  通過構造函數創造

        var reg=/規則/模式                通過字面量創建

       i  忽略大小寫

       g  全局

       m  多行

       註:不分前後順序

      str.match(正則)  返回數組 沒有返回 null

      str.search(正則)  返回下標  沒有返回-1

      str.replace(正則,替換成誰)  返回替換後的字元串

      str.replace(正則,function(s){

                       s 符合正則條件的字元串

       })

       \d  數字 /[0-9]/

       \s  空格

       \w  /[0-9a-zA-Z_]/ 單詞

       \D  非數字  /[^0-9]/

       \S  非空白

       \W  非單詞  /[^0-9a-zA-Z_]/

.(點)    代表任意

         \.  代表.

         \\  代表\

         \\\\  代表\\

          \/    代表/

          只要有特殊意義的都要轉譯

          +  {1,m}  若干個  最少1個最多不限

          ? {0,1}  可有可無

          *  {0,m}  可以沒有,多了不限

          {n}  正好n個

         {n,m}  最少n個 最多m個

         {n,}  最少n個,最多不限

         {,m} × 沒有這種寫法

        ^  行首

         註:如果^單獨使用,代表字元串列首,配合m使用會識別段落

        $  行尾

        [] 中括弧

             1、[]裡面的東西都是或的形式

             2、[]裡面和放范圍

             3、[^]  不代錶行首,代表除去裡面的范圍

             4、其他特殊符號代表本身

         1、test()  一般配合^ &

               功能:用於檢測是否於正則匹配。

               返回:布爾值,true匹配,false不匹配

               語法:reg.test(檢測的內容)

          2 exec()

               功能:用於檢測是否於正則匹配。

               返回:數組, 不匹配返回null

               語法:reg.test(檢測的內容)

               再做驗證之前:驗證分兩種,一種強校驗,一種弱校驗

            (1)驗證手機號                                      /1[23457]\d{9}/

            (2)驗證座機號      區號-座機號            /(0[1-9]\d-)?[1-9]\d{7}/

            (3)驗證qq                                            /[1-9]\d{4,11}/

            (4)實現一個trim函數 去掉收尾空格      /^\s+|\s+$/g

            (5)中文                                                /[\u4e00-\u9fa5]/

            (6)驗證年齡       18-100                       /^1[89]|[2-9]\d|100$/

            (7)郵箱:     [email protected]           /^\w{5,12}@[a-z0-9]{2,8}\.com$/

            (8)  過濾html                                            /<[^>]+>/g;

        1、分組    ab+ abbbb  (ab)+

        2、匹配子級

              配合replace使用  str.replace(reg,function(s,a,b){

               s是 整體

               a是第一個括弧的項

               b是第二個括弧的項

          })

        3、優選級  ^(1[89]|[2-9]\d|100)$

        4、重復的子項

              abbb          /(a)(b)\2+/

今天先給大家總結到這兒,後續還會有補充

㈣ new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");這個正則表達式麻煩高人解釋一下

function getParameter(name) {var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)","i");var r = location.search.substr(1).match(reg);if (r!=null) return (r[2]); return null;} 以上是一個用於獲取url中的查詢參數的 js 方法===========1) 其中的正則表達式用到了字元串拼接 (^|&) 表示行首或者以&開頭 name 表示傳進來的變數 = 還是表示等號 ([^&]*) 表示非&的任意個字元 (0到多個) (&|$) 表示以&結束或者是行尾===========2) var r = location.search.substr(1).match(reg);location.search.substr(1) 用於獲得 URL 的查詢部分 (?後面的內容).比如地址欄中的地址是r[0] = "&name=QQ&" 是整個正則表達式匹配到的內容r[1] = "&" 是正則表達式中第一個括弧匹配到的內容,即 (^|&) 匹配到的內容r[2] = "QQ" 是正則表達式中第二個括弧匹配到的內容,即 ([^&]*)匹配到的內容r[3] = "&" 是正則表達式中最後一個括弧匹配到的內容即 (&|$) 匹配到的內容北京瀾翰科技工程師組

javascript 使用 new RegExp 創建正則表達式

varre=newRegExp("abc","g");//用構造函數創建,匹配模式放在「」內就行了
varre=/abc/g;//字面量創建就是這樣的

准確來說,你測試正確的也是錯誤的寫法

㈥ js數組和正則表達式

RegExp()的第二個參數主要支持g,i,m這3個修飾性字元

字元g,用來指定全局匹配

字元 i ,是用來指定大小寫為等同;

字元 m 是多行一詞的縮寫,設置匹配模式能夠在多行字元串中執行操作

var a = "javasssss";

    var s = new RegExp("a","gi");

    alert(a.match(s));

返回值為a,a

var a = "javasssss sssswww aaaaa";

    var s = new RegExp("\\b\\w","gi");

    alert(a.match(s));

返回值為j,s,a

\\b\\w是一個匹配模式,其中反斜杠表示轉義序列,而雙斜杠表示的是斜杠的意思,\b表示邊界的意思\w表示的任意的ASCii碼,指的就是每一個單詞的首字母;

var a = "javasssss sssswww aaaaa";

    var r=new RegExp("\\x61");

    var s=a.match(r);

    alert(s);

x61表示的是a的十六進制的ascii碼,除了十六進制以外,還可以直接使用八進制數值來匹配例如;

var a = "javasssss sssswww aaaaa";

    var r=new RegExp("\\141");

    var s=a.match(r);

    alert(s);

js中的特殊字元

\o表示空字元   

\t表示製表位

\n表示換行符

\v表示垂直製表符

\f表示換頁符

\r表示回車符

\a表示alert字元

\e表示escape字元

\b表示回退字元

\cX表示控制自負^x

對於這些特殊的字元,如果在RegExp構造函數中使用,必須使用雙斜杠表示專業。

定義簡單的字元類

var a = "javasssss sssswww aaaaa";

    var r=new RegExp("[abcsw]","gi");

    var s=a.match(r);

    alert(s);

返回值為

查找字元串中是否有字元類中的字母

定義反義字元類

var a = "aba abd abg abe";

    var r=new RegExp("ab[^abc]","gi");

    var s=a.match(r);

    alert(s);

返回值為

第三個字元表示除了a,b,c以外的字元都可以

var r= new RegExp("[^012345679]","gi");

匹配除了數字以外任意的字元。反義字元類比簡單字元類更加強大和實用

如果任意雙位元組的漢字,你可以這樣設計

var r=new RegExp("\\u0000-\\u00ff","gi");

預定義字元類

㈦ JS正則表達式詳解

RegExp是JS的正則表達式對象,實例化一個RegExp對象有 字面量 構造函數 2種方式。

字面量實例化RegExp對象

var reg=/js/gi;

開始和結束的斜線/是正則表達式的邊界,//中間的文本是正則表達式文本,後面的gi是正則表達式的修飾符。

構造函數實例化RegExp對象

var reg=new Regex(『js』,』gi』);

第一個參數是正則表達式文本,第二個參數是正則表達式修飾符。

global:RegExp 對象是否具有標志 g。

ignoreCase:RegExp 對象是否具有標志 i。

lastIndex:一個整數,標示開始下一次匹配的字元位置。

multiline:RegExp 對象是否具有標志 m。

source:正則表達式的源文本。

RegExp 對象有 3 個方法:test()、exec() 以及 compile()。

test()

test() 方法檢索字元串中的指定值。返回值是 true 或 false。

示例:

var reg=/js/gi;

var result=reg.test(『I like js』);

結果:true

exec()

exec() 方法檢索字元串中的指定值。返回值是被找到的值。如果沒有發現匹配,則返回 null。

示例:

var reg=/js/gi;

var result=reg.exec(『I like JS』);

結果:JS

compile()

compile() 方法用於改變 RegExp。

compile() 既可以改變檢索模式,也可以添加或刪除第二個參數。

g:global全文搜索,如果不添加此參數,搜索到第一個匹配就會停止

i:ignore case 不區分大小寫,默認是區分大小寫的

m:multiple lines 多行搜索,默認只搜索第一行

正則表達式文本部分包含 原義文本字元 元字元, 其中的原義文本字元代表字元本身意義的字元,如abc123之類的字元。

元字元代表有特殊含義非字母字元,如、w、d、+、*、? 等。

常用的元字元

更多的JS正則元字元請參考: http://www.runoob.com/regexp/regexp-metachar.html

一般情況下正則表達式中的一個字元對應字元串中的一個字元,如表達式ab的含義是ab。

表達式中用 [] 來定義一個字元類,表示可以匹配[]裡面的這類字元,是一個泛指,而不是一一對應的關系。

如表達式[abc123],表示有其中一個字元串都可以匹配。

在字元類裡面使用橫線-連接2個數字或者字母就可以構建一個范圍類,如[a-zA-z0-9-]表示可以匹配26個大小寫字母和0-9的全部數字以及橫線-。

注意,要匹配橫線」-「,必須把橫線放在最後面。

預定義類可以理解為JS默認給我們寫好的范圍類,讓我們可以使用一個簡單的元字元來使用它。如」w」就是一個預定義類,它等價於范圍類[A-Za-z0-9_];「.」可以匹配除 「 」 之外的任何單個字元。

邊界包含2種,一種是以字元串開始或結尾的邊界,另一種是單詞邊界

量詞表示可以匹配連續多次的元字元

JS正則表達式默認是貪婪模式匹配,它會以最多匹配原則進行查找,非貪婪模式可以讓表達式以最少匹配原則進行查找。

非貪婪模式只需要在量詞後面加上」?」即可,如」123456789″字元串想以3個數字為一組進行匹配表達式寫法/d{3,5}?/g。

表達式中用 () 來定義一個分組,使元字元可以作用於一個表達式字元串組合,如/(js|php){3}/gi。

表達式中的每一個分組匹配的內容都是一個可以捕獲的變數,可以使用$1、$2、$3… 來取值,如表達式/(d{4})-(d{2})-(d{2})/中包含$1、$2、$3。如果想忽略分組匹配的內容,需要在分組前面增加「?:」,就可以得到分組匹配之外的內容。

前瞻就是正則表達式後面加上斷言部分,它不但要匹配表達式部分,還需要滿足斷言部分,匹配的結果不會包含斷言部分。

正向前瞻 exp(?=assert) 如 「w(?=d)」

負向前瞻 exp(?!assert) 如 「w(?!d)」

match()

stringObject.match(regexp)

match() 方法可在字元串內檢索指定的值,或找到一個或多個正則表達式的匹配。

如果 regexp 沒有標志 g,那麼 match() 方法就只能在 stringObject 中執行一次匹配。

如果沒有找到任何匹配的文本, match() 將返回 null。

否則,它將返回一個數組,其中存放了與它找到的匹配文本有關的信息。該數組的第 0 個元素存放的是匹配文本,而其餘的元素存放的是與正則表達式的子表達式匹配的文本。

search()

stringObject.search(regexp)

search() 方法不執行全局匹配,它將忽略標志 g。它同時忽略 regexp 的 lastIndex 屬性,並且總是從字元串的開始進行檢索,這意味著它總是返回 stringObject 的第一個匹配的位置。

replace()

stringObject.replace(regexp/substr,replacement)

字元串 stringObject 的 replace() 方法執行的是查找並替換的操作。它將在 stringObject 中查找與 regexp 相匹配的子字元串,然後用 replacement 來替換這些子串。如果 regexp 具有全局標志 g,那麼 replace() 方法將替換所有匹配的子串。否則,它只替換第一個匹配子串。

replacement 可以是字元串,也可以是函數。如果它是字元串,那麼每個匹配都將由字元串替換。但是 replacement 中的 $ 字元具有特定的含義。如下表所示,它說明從模式匹配得到的字元串將用於替換。

split()

stringObject.split(separator,howmany)

如果 separator 是包含子表達式的正則表達式,那麼返回的數組中包括與這些子表達式匹配的字串(但不包括與整個正則表達式匹配的文本)

正則表達式語法語意測試工具: https://regexper.com/

㈧ js中用正則表達式對用戶名進行基本驗證,包括不能為空,長度 特殊字元等! 大家幫幫忙,不勝感激

^用戶名復一般就是4-12位的樣子制吧,只能是字母(大小寫敏感),數字,下劃線,不能以下劃線開頭和結尾
/^[a-zA-Z\d]\w{3,11}[a-zA-Z\d]$/
這個就行了

---------------
var str = 'adcdefg';//用戶名
var reg = /^[a-zA-Z\d]\w{3,11}[a-zA-Z\d]$/;//正則
if(reg.test(str)){
alert('驗證成功');
}else{
alert('驗證失敗');
}

㈨ Js 中的 正則表達式

1定義正則表達式
在js中定義正則表達式很簡單,有兩種方式,一種是通過構造函數,一種是通過//,也就是兩個斜杠。
例如

代碼如下:

var re =new RegExp("\\?(\\w{1,}=\\w{1,}&){1,}\\w{1,}=\\w{1,}");

使用構造函數定義正則表達式,注意大小寫,負責就會不起作用。由於構造函數的參數是一個字元串,也可以是兩個斜杠的方式定義,遇到一些特殊字元就需要使用\進行轉義
通過雙斜杠的方式定義同樣的正則表達式

代碼如下:

var re =/\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}/;

代碼如下:

var re =new RegExp( /^\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}/);

可以和構造函數達到同樣的效果,但仔細分析,發現,通過構造函數需要更多的轉義字元\

2關於驗證的三個正則表達式方法
使用正則表達式的主要有字元串的方法match,正則表達式的方法exec,test
正則表達式方法test測試給定的字元串是否滿足正則表達式,返回值是bool類型的,只有真和假,如果只是單純的判斷,不需要其他的處理,可以使用尤其是驗證時。

代碼如下:

function test(){
var text="index.aspx?test=1&ww=2&www=3"; //
var re =/\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}/;
// var re =new RegExp("\\?(\\w{1,}=\\w{1,}&){1,}\\w{1,}=\\w{1,}");
var result= re.test(text);
if(result)
{
alert("ok");
}else
{
alert("err");
}

}

正則表達式方法exec測試給定的字元串是否滿足正則表達式,返回匹配到的字元串,如果沒有匹配的則返回null,和test基本一致,如果需要獲取匹配的各個子字元串,可以使用下標的方式,把上邊的test的例子可以改寫如下

代碼如下:

function test(){
var text="index.aspx?test=1&ww=2&www=3";
var re = /\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}/;
// var re =new RegExp( "\\?(\\w{1,}=\\w{1,}&){1,}\\w{1,}=\\w{1,}");
var result= re.exec(text);
if(result)
{
alert("ok");
alert(result); // 是?test=1&ww=2&www=3,ww=2&
alert(result[0]+",0");//是?test=1&ww=2&www=3
alert(result[1]+",1");//是ww=2&
}else
{
alert("err");
}

}

match其實是字元串的方法,但參數確是一個正則表達式,把上邊的例子改寫後,如下

代碼如下:

function test(){
var text="index.aspx?test=1&ww=234"; //
var re = /\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}/;
// var re2 = "(\\w{1,}=\\w{1,}&){1,}\\w{1,}=\\w{1,}"
var result= text.match(re);
if(result)
{
alert(result);//?test=1&ww=234,test=1&
alert(result[0]+",0");//?test=1&ww=234
alert(result[1]+",1");//test=1&
}else
{
alert("err");
}
}

其實字元串類還有多個函數可以傳遞正則表達式,split,search,replace等但這些方法已經不適合驗證了。

代碼如下:

function test(){
var text="index.aspx?test=1&ww=234"; //
var re = /\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}/;
// var re2 = "(\\w{1,}=\\w{1,}&){1,}\\w{1,}=\\w{1,}"
var result= text.split(re);
alert(result);
alert(result[0]+",0");
alert(result[1]+",1");
}

3正則表達式式的轉義字元
在正則表達式中會經常出現轉義字元,例如問號?在正則表達式中有特殊的含義,如果需要匹配問號?就需要轉義,使用轉義字元反斜杠\
如下兩個都是匹配問號開頭的一段字元串

代碼如下:

function test(){
var text="?test=1&ww=2&www=3";
var re = /^\?(\w{1,}=\w{1,}&){1,}\w{1,}=\w{1,}/;// \?表示配置問號?
// var re =new RegExp( "^\\?(\\w{1,}=\\w{1,}&){1,}\\w{1,}=\\w{1,}");// \\?表示配置問號?
var result= re.exec(text);
if(result)
{
alert("ok");
alert(result);
alert(result[0]+",0");
alert(result[1]+",1");
}else
{
alert("err");
}

}

閱讀全文

與jsnewregex相關的資料

熱點內容
電腦沒聯網怎麼拷貝文件 瀏覽:224
wps工具欄怎麼換成中文 瀏覽:338
win7和xp共享文件 瀏覽:883
蘋果4代音量鍵沒反應 瀏覽:827
怎樣打開tif文件 瀏覽:153
java下載文件zip 瀏覽:440
qq瀏覽器壓縮文件怎麼設密碼 瀏覽:526
黃埔數控編程哪裡好 瀏覽:406
mac109升級1010 瀏覽:691
在java的菜單如何導入文件 瀏覽:982
現在什麼網站銷量最高 瀏覽:760
angularjsclass定義 瀏覽:157
ug數控編程怎麼導出程序 瀏覽:466
cmdb文件 瀏覽:710
鵯文件夾 瀏覽:763
網路輿情應對的基本理念是什麼 瀏覽:433
word2007層次結構 瀏覽:456
去掉文件名的數字 瀏覽:713
word公司 瀏覽:710
淘寶店數據包怎麼上傳 瀏覽:341

友情鏈接