❶ 如何在 js if條件里 寫正則表達式
在if語句中用js正則表達式的test函數返回true或false來判斷是否匹配,並執行相應的程序.
我給你一內個判容斷字元串是否為A後面多個B的例子,你看看吧.
<script type=text/javascript>
var str="ABBBBB";
var regex=/^AB+$/;
if(regex.test(str)){
document.write("匹配");
}else{
document.write("不匹配");
}
</script>
❷ js正則表達test,exec和match的區別
test是RegExp的方法,參數是字元串,返回值是boolean類型。 match是String的方法,參數是正則表達式,返回值是數組。
❸ 求大神指教js非中英文字元的正則表達式
匹配非中英文字元的js正則表達式 /^[^a-zA-Z\u4e00-\u9fa5]+$/
我給你一個Javascript語言的例子,你看看吧.
<script type=text/javascript>
var str='1234$';
var regex=/^專[^a-zA-Z\u4e00-\u9fa5]+$/;
var result=regex.test(str);
alert(result);
</script>
運行結果
true
如果僅匹屬配字元串中的非中英文字元,可以用這個js正則表達式 /[^a-zA-Z\u4e00-\u9fa5]+/g
❹ 用js的正則表達式檢測電話號碼,要求必須是1開頭,只能是11位數字,該正則表達式怎麼寫
表達式寫法是:/^1d{10}$/
解析:^1 以1開頭,d表示數字,d{10}表示數字出現10次,加上前面內以1開頭,正好是11個數容字,X$表示以X結尾,這里用$表示後面沒有了,11個數字後已經是匹配字元串的結尾。
結果展示:
❺ 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 正則表達式 怎麼匹配數字後帶小數點 並且知道匹配到了多少次
數字之間如果是以空格分隔的話,使用下面的代碼就可以了,已測試過:
<scripttype="text/javascript">
varregex=/d+.d+/g;
varstr="1.1112.2223.432";
varstrArr=str.match(regex);
for(vari=0;i<strArr.length;i++){
document.write("第"+i+"次匹配:"+strArr[i]+"<br/>");
}
</script>
輸出結果:
第1次匹配:1.111
第2次匹配:2.222
第3次匹配:3.432
❼ js正則表達式
要想得到來reg1的$1隻需要在自reg1.test(str_reg_1);後面,reg2.test(str_reg_1);前面,加一句alert(RegExp.$1);,完整的Javascript程序如下(改動的地方見注釋)
<scripttype=text/javascript>
varreg1=newRegExp("(hello)");
varreg2=newRegExp("(world)","g");
varstr_reg_1="helloworld,hellokitty,helloAIworld";
reg1.test(str_reg_1);
alert(RegExp.$1);//這里加一句
reg2.test(str_reg_1);
alert(RegExp.$1);
</script>
運行結果
hello
world
❽ 在js中正則表達式如何判斷用戶輸入的內容只能是數字和字母
驗證函數代碼如下:
functioncheck(str){return/^[da-z]+$/i.test(str);}代碼中關鍵字元含義:
1、^表示匹配字元串的首字元。
2、$表示匹配字元串的尾字元。
3、d表示匹配數字。
4、a-z表示匹配任意英文字母。
5、[]是集合的意思,表示一個字元是[]中任意一個。
6、+表示匹配1個或1個以上,[]+表示匹配[]中的1個以上字元。
7、表達式後面的i表示忽略大小寫。
8、test函數用於驗證字元串是否滿足正則表達式,如果滿足該正則表達式返回true,否則返回false。
(8)jsregex擴展閱讀:
正則表達式,又稱規則表達式。(英語:Regular Expression,在代碼中常簡寫為regex、regexp或RE),計算機科學的一個概念。正則表達式通常被用來檢索、替換那些符合某個模式(規則)的文本。
許多程序設計語言都支持利用正則表達式進行字元串操作。例如,在Perl中就內建了一個功能強大的正則表達式引擎。正則表達式這個概念最初是由Unix中的工具軟體(例如sed和grep)普及開的。正則表達式通常縮寫成「regex」,單數有regexp、regex,復數有regexps、regexes、regexen。