關於javascript正則表達式的信息

本文目錄一覽:

JavaScript中可以使用正則表達式么?如果能,該如何使用呢?

首先肯定的是JavaScript中是可以使用正則表達式的。

下面我就借鑒秒秒學上的內容,簡單說下。

在沒有了解正則表達式之前,是很難理解它的強大功能的,我們先來看一個在JavaScript中使用正則表達式的語句。

//創建正則表達式,這和聲明字符串很相似,但hello不是放在雙引號中,而是在雙斜杠中’//’。

var myRE = /hello/;

示例中創建正則表達式的代碼其實是簡寫,完整寫法為:var myRE = new RegExp(“hello”);

/*

*使用正則表達式在字符串中查找信息。

*下面代碼使用test方法匹配字符串,這裡在myString中匹配myRE中的”hello”字符串,

*若myString中能匹配到test方法,則返回true,否則返回false。匹配過程是大小寫敏

*感的。

*/

var myString = “Does this sentence have the word hello in it?”

if( myRE.test(myString) ) {

alert(“Yes”);

}

test方法只返回true和false,而使用search方法能返回”hello”在myString中第一次出現的下標。

介紹了JavaScript中使用正則表達式的用法後,下面我們來說下正則表達式本身。

在剛剛的示例中,我們用正則表達式匹配的是字符串hello。但很多時候需要匹配的字符串是比較複雜的,如電子郵箱的格式。這時我們就要使用由普通字符以及特殊字符組成的文字模式。特殊字符也許對不了解正則表達式的人來說就是一串亂七八糟的字符,但其實就是因為有了這些亂糟糟的字符,才能使正則表達式好些的強大。下面我們來了解下正則表達式中的特殊字符:

通過普通字符以及特殊字符可以組成複雜的正則表達式。如下是一個逐漸複雜的示例:

其實上面的正則表達式並不算複雜。很多常用的正則表達式可以在網上找到,不用我們自己編寫,如:

匹配電子郵箱:/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/

匹配URL:/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/

複雜正則表達式的編寫並不簡單,題主只要先大概的了解即可,希望能幫助你入門,推薦你去一個不錯的自學網站 秒秒學上過一遍基礎知識。

js正則表達式的使用

我這裡給你寫了一個例子

var reg = /^[a-zA-Z]$/;// 這裡是 正則表達式,大小寫英文字母都可以

if (reg.test(userName.value) != true) {

alert(“用戶應為全英文”);

}

希望對你有用,如果還有問題,請繼續追加問題

javascript正則表達式

/*

@param str the string to calc length

@param autotrim auto trim blank char. default : false

*/

function getAbsLength(str, autotrim) {

    if (typeof str === ‘undefined’) return 0;

    if (str == null) return 0;

    // trim    

    var reg_trim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;

    var reg_chinese_char = /[\u4e00-\u9fa5]/;

    autotrim = !!autotrim;

    str = autotrim ? (str + “”).replace(reg_trim, “”) : (str + “”);

    var orig_len = str.length;

    var absLen = 0;

    for (var i = 0; i  orig_len; i++) {

        if (reg_chinese_char.test(str.charAt(i))) {

            // chinese, length=2

            absLen += 2;

        } else {

            absLen += 1;

        }

    }

    return absLen;

}

除了中文,其它都算是一個字符的。。

JS正則表達式完整教程30

親愛的讀者朋友,如果你點開了這篇文章,說明你對正則很感興趣。

想必你也了解正則的重要性,在我看來正則表達式是衡量程序員水平的一個側面標準。

關於正則表達式的教程,網上也有很多,相信你也看了一些。

與之不同的是,本文的目的是希望所有認真讀完的童鞋們,都有實質性的提高。

本文內容共有七章,用JavaScript語言完整地討論了正則表達式的方方面面。

如果覺得文章某塊兒沒有說明白清楚,歡迎留言,能力範圍之內,老姚必做詳細解答。

構造正則表達式的方法和創建數學表達式的方法一樣。也就是用多種元字符與運算符可以將小的表達式結合在一起來創建更大的表達式。正則表達式的組件可以是單個的字符、字符集合、字符範圍、字符間的選擇或者所有這些組件的任意組合。

正則表達式是由普通字符(例如字符 a 到 z)以及特殊字符(稱為”元字符”)組成的文字模式。模式描述在搜索文本時要匹配的一個或多個字符串。正則表達式作為一個模板,將某個字符模式與所搜索的字符串進行匹配。

JavaScript 實現基礎 正則表達式

JavaScript通過RegExp類來支持正則表達式,舉一個最簡單的例子:

複製代碼

代碼如下:

var

regApple

=

new

RegExp(“apple”);

它可以匹配一個字符串中出現的第一個”apple”字符串,並且對大小寫敏感。在構造方法中加入第二個參數”g”則代表的搜索出字符串中所有的

“apple”,這裡”g”代表”global”。如果第二個參數為”i”,則代表着case-insensitive,匹配過程中將不考慮字母的大小寫。將上述兩者綜合起來,可以搜索出所有”apple”字符串,並且不考慮大小寫問題。

複製代碼

代碼如下:

var

regApple

=

new

RegExp(“apple”,

“gi”);

正則表達式有着並不唯一的表示方法,使用Perl語言中的語法,可以將上述表達式表示為:

複製代碼

代碼如下:

var

regApple

=

/apple/gi;

創建了一個RegExp對象後,RegExp的方法可以構造出不同的匹配方式,因為正則表達式是對字符串進行的操作,所以String的一些方法在構造正則表達式的過程中也扮演着重要角色。

RegExp對象的方法

複製代碼

代碼如下:

var

sampleString

=

“Greenapple”;

var

regApple

=

/apple/;

alert(regApple.test(sampleString));

上面代碼輸出的結果是”true”,因為sampleString中包含了需要匹配的字符串”apple”,這是最簡單的檢測方式。有時,我們需要知道匹配的詳細結果,例如:

複製代碼

代碼如下:

var

sampleString

=

“green

apples,

red

apples”;

var

regApple

=

/apple/g;

var

arr

=

regApple.exec(sampleString);

通過使用exec()方法,返回的arr是關於匹配結果的一個數組,包括每一個匹配的值及其所在的段,例如上例中是”green

apples”還是”red

apples”。match()方法有着和exec()相同的功能,只是表達方式不同:

複製代碼

代碼如下:

var

sampleString

=

“green

apples,

red

apples”;

var

regApple

=

/apple/g;

var

arr

=

sampleString.match(regApple);

search()方法和indexOf()比較類似,返回第一個匹配的字符串所在的位置:

複製代碼

代碼如下:

var

sampleString

=

“green

apples,

red

apples”;

var

regApple

=

/apple/gi;

alert(sampleString.search(regApple));

//輸出”6″

String的方法

String的replace()方法可以將指定的字符串替換為另一個字符串:

複製代碼

代碼如下:

var

sampleString

=

“There

is

a

green

apple.”;

alert(sampleString.replace(“green”,

“red”));

//輸出”There

is

a

red

apple.”

將replace()的第一個參數替換為一個正則表達式,可以達到同樣的效果:

複製代碼

代碼如下:

var

sampleString

=

“There

is

a

green

apple.”;

var

regApple

=

/apple/;

alert(sampleString.replace(regApple,

“red”));

//輸出”There

is

a

red

apple.”

replace()的第二個參數可以替換為一個function(),該function()接受一個匹配字符串作為參數,返回一個替換字符串。(存在疑問)

使用正則表達式可以實現String的split()方法相同的功能。

複製代碼

代碼如下:

var

fruit

=

“apple,pear,lemon”;

var

arr

=

fruit.split(“,”);

使用正則表達式:

複製代碼

代碼如下:

var

fruit

=

“apple,pear,lemon”;

var

reg

=

/\,/;

var

arr

=

fruit.split(reg);

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/288640.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-24 03:00
下一篇 2024-12-24 03:00

相關推薦

發表回復

登錄後才能評論