本文目錄一覽:
- 1、JavaScript中可以使用正則表達式么?如果能,該如何使用呢?
- 2、js正則表達式的使用
- 3、javascript正則表達式
- 4、JS正則表達式完整教程30
- 5、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-tw/n/288640.html