RegExp類型於String類型簡介

RegExp類型

概述

  • 正則表達式時什麼

正則表達式(Regular Expression):由一些普通字符和特殊字符組成的,用以描述一種特定的字符規則的表達式。
正則表達式經常使用於在一段文本中搜索,匹配或替換特定形式的文本。如:詞語出現頻率統計,驗證字符串是否符合郵箱格式,屏蔽一篇帖子中限制性的詞語等正則表達式

  • 建立正則表達式

JavaScript中沒有正則表達式數據類型,建立正則表達式的語句以下:
var expression =/pattern/attributes;
pattern參數:被稱爲模式,能夠時任何簡單或複雜的正則表達式,包含字符類,限定符,分組,向前查找已經反向應用。
attribures參數:被稱爲修飾符,用於代表正則表達式的行爲。
##符號express

  • 直接量字符

正則表達式中的全部字母和數字都是按照字面含義進行匹匹厄的。JavaScript正則表達式語法也是支持非字母的字符匹配,這些字符須要經過反斜線()做爲前綴進行轉義。
O 匹配NULL字符,不要再這後面跟其餘的小鼠
t匹配一個水平製表符。
n匹配一個換行符。
v 匹配一個垂直製表符。
R匹配一個回車符。
f匹配一個換頁符。
xhh 匹配帶有兩位小數代碼(hh)的字符
uhhh 匹配一個帶有四位小數代碼(hh)的字符數組

  • 字符類

將直接量字符單獨放進方括號內就組成了字符類。一個字符類能夠匹配它所包含的任意字符。因爲某些字符類很是經常使用,JavaScript的正則表達式中,使用特殊轉義字符表示他們。
[...] 一個字符集合。匹配放闊號任意字符。你可使用破折號
(-)來制定。因爲某些字符範圍。對於點
(.)和信號(*)這樣的特殊字符再一個字符集中沒有特殊的意義。
1 一個反向的字符集。
. (小數點)匹配除了換行符(n)以外的任何單個字符
w 匹配一個單子字符(字母,數字,或者下劃線)。等價於[A-Za-z0-9]
W匹配一個非單字字符。
s匹配一個空白字符,包括空格,製表符,換頁符和換行符。
S匹配一個非空白字符。
d匹配一個數字, 等價於【0-9】
D匹配一個非數組字符。等價於2;oracle

  • 重複

再JavaScript中的正則表達式用來描述任意多爲的數字,或者描述由三個字母和一個數字構成的字符串時,可使用字符重複的標記。
{n,m} n和m都是正整數。匹配前面的字符至少n次,作多m次。若是n或者m是0那麼能夠或略這個值
{n}n是一個正整數,匹配了前面一個字符恰好發生了n次。
{n}n是一個正整數,匹配了有一個正整數,匹配了前面一個字符放生了n次或者更屢次。
? 匹配前面一個字符0或者1次和{0,1}有相同的效果。this

  • 匹配前面一個字符1次或者屢次,和{1,}有相同的效果。
  • 匹配籤一個字符0或者屢次。

注意:‘*’ ‘?’能夠匹配0個字符,容許什麼都匹配編碼

  • 選擇,分組,引用

正則表達式包括指定選擇項,子表達式分組和引用前一子表達式的特殊字符。
x|y 匹配‘x’或者‘y’。
(x) 匹配「x」而且記住匹配項。這個被叫作捕獲括號。
(?.x) 匹配「x」可是不記住匹配項。這種被叫作非捕獲括號。
n 是一個正整數,一個返回引用到最後一個於有n插入的正值表達式(counting left parentheses)匹配的副字符串。code

  • 指定匹配位置

正則表達式中的多個元素纔可以匹配字符串的一個字符,這些元素稱之爲正則表達式的錨。由於他們將模式定位在搜索字符串的特定位置上。
^ 匹配輸入的開始 。若是多行標識被設置爲true,同時匹配換行後緊跟的字符
$ 匹配輸入的結束,若是多行標識被設置爲ture,同時會匹配換行以前緊跟的字符
b 匹配一個詞的邊界。一個詞的邊界就是一個詞不被另一個次跟隨的位置或者不是另一個詞彙字符前邊的位置。
B 匹配一個非單詞的邊界
X(?=y) 匹配‘x’僅僅當‘x’後面跟着‘y’。這種叫作正向確定查找。
x(?!y) 匹配‘x’僅僅當‘x’後面不跟着y,這個叫作正向否認查找。對象

  • 修飾符

正則表達式的修飾符,用於說明高級匹配的規則。修飾符是放在‘/’符號的後面的。JavaScript支持的三個修飾符。
i 不區分大小寫
g 全局搜索
m 多行搜搜索引

  • 對象

建立RegExp對象
JavaScript能夠經過引用類型RegExp建立正則表達式對象,語法以下:
var pattern =new RegExp(pattern,attributes);
參數:
pattern:被稱之爲模式,能夠是任何簡單或複雜的正則表達式,包含字符類,限制類,分組,向前查找以及反向引用。
attributes:被稱之爲修飾符,用於代表正則表達式的行爲。ip

  • RegExp對象的屬性

RegExp對象的屬性以下:
global 只讀 RegExp對象是否具備g修飾符。
ignorecase 只讀RegExp對象是否具備i修飾符。
multiline 只讀RegExp對象是否具備m修飾符。
lastindex 用於設置獲取下次匹配的其實位置。
source 只讀 返回模式匹配所使用的問題。
$1...$9 全局屬性 指代最近一次搜索中某個子表達式匹配的問題。

  • RegExp對象的方法

RegExp對象的方法以下:
compile() 編譯/從新編譯正則表達式,將pattern轉換爲內部格式,加速執行速度。
exec() 檢索字符串中指定的值。返回找到的值,並肯定其位置;影響lastindex屬性的值。
test() 檢索字符串指定的值。返回ture 或false;影響lastindex屬性的值。

Strsing類型

概述

  • 字符串是什麼

String類型是於原始類型string對應的包裝類型。建立String對象以下代碼:
var strObject = new String ('this is string');
string 類型於String 類型之間的區別:
使用typeof運算符,string 類型返回‘string’,String類型返回'object'。
String類型提供了不少屬性和方法可使用。例如檢索字符串,分割字符換行等操做

常見操做

  • 大小寫轉換

String對象提供以下放方法,用於大小寫轉換。
toUppercase() 把字符串轉換爲大寫。
toLowercase() 把字符串轉換爲小寫。
var =msg = 'Hello World';
var lowerMsg =msg.tolowercase();
var upperMsg =msg.toUppercase ();
console.log(msg);//Hello World
console.log(LoweMsg);//hello world
console.log(upperMsg);//HELLO WORLD

  • 獲取指定位置的字符串

String對象提供以下方法。用於獲取指定位置的字符。
charAr() 返回再指定位置的字符。
charCodeAt() 返回在指定的位置的字符的Unicode編碼。
var str = 'HELLO WORLD';
console.log(str.charAt(2));//L
console.log(str.charCode(0));72

  • 檢索字符串

String對象提供以下方法,用於檢索字符串。
indexOf()返回某個指定的字符串值在字符串中首次出現的位置。
lastindexOf()從後向前字符串。
var email ='tom@163@sohu.com';
console.log(email.indexOf('tom'));//0
console.log(email.indexOf('@',5))//7
console.log(email.lastIndexOf('@'))//7
console.log(smail.lastIndexOf('@',5))//3
console.log(email.indexOf('Mary'));/-1
截取子字符串
String對象提供以下方法,用於截取子字符串。
slice() 提取字符串的片斷,並在新的字符串中返回被提取的部分。
substr() 從其實索引號提取字符串中指定書目的字符。
substring() 提取字符串中的兩個指定的索引號之間的字符。
var msg = 'abc一二三';
console.log(msg.slice(2,4));//c一
console.log(msg.substring(2,4))//c一
console.log(msg.substr(2,1))//c
console.log(msg.slice(-3,-2));//一

  • 分隔字符串

string對象提供以下方法,用於分隔字符串。
split() 把字符串分割爲字符串數組。
var str ='1,2,3,4';
str,split('');//['1','2','3','4,'];
str.split('',3);//['1','2','3','4'];

  • 鏈接字符串

String對象提供了以下方法,用於鏈接字符串。
concat() 鏈接兩個或者更多字符串,並返回新的字符串。
var s1 ='AA';
var s2= s1.concat('BB','CC',55);
console.log(s1);AA
console.log(s2);//AABBCC55

模式匹配

  • 修飾符

模式匹配中可使用以下三種屬性修飾符:
i ignorecase,執行對大小寫不敏感的匹配。
g global, 執行全局匹配(查找全部匹配而不是在第一次匹配以後中止)。
m multiline,容許執行多行匹配。

  • 替換子字符串

String對象提供以下方法,用於替換子字符串。
replce()在字符串中查找匹配的子串,並替換於正則表達式匹配的字串。
var = data =Microsoft is a big company ,microsoft's color is red and has MICROSOFT logo lick microsoft';
console.log (data.replace('microsoft','oracle'));
console.log(data.replace(/microsoft/,'oracle'));
console.log(data.replace(/microsoft/i,oracle));
console.log(data.replace(/microsoft/ig,oracle));

  • 匹配字符串

String對象提供了以下方法,用於匹配字符串。
match() 查找找到一個或多個正則表達式的匹配。

var = data =Microsoft is a big company ,microsoft's color is red and has MICROSOFT logo lick microsoft';
console.log(data.match('microsoft'))
console.log(data.match(/microsoft/));
console.log(data.match(/microsoft/i);
console.log(data.match(/microsoft/ig));

  • 查找字符串

String對象提供以下方法,用於查找字符串
search 查找於正則表達式向匹配的值。
var = data =Microsoft is a big company ,microsoft's color is red and has MICROSOFT logo lick microsoft';
console.log(data.search)(/'microsoft'/);
console.log(data.search)(/'microsoft'i)/;
console.log(data.search)(/'microsoft'/ig);


  1. ...
  2. 0-9
相關文章
相關標籤/搜索