js中正則表示式元字元不起作用的問題……
今天在專案過程中發現一個問題,在網上拷的一段驗證日期的正則表示式在專案中不起作用,在很多線上測試正則表示式的網站上都做過測試,自己也讀了正則程式碼,就是看出來有什麼問題:
function checkInDate(inStrdate) { var regex = new RegExp("^(?:(?:(\d{4}(-|\/)(?:(?:0?[1,3-9]|1[0-2])(-|\/)(?:29|30)|((?:0?[13578]|1[02])(-|\/)31)))|(\d{4}(-|\/)(?:0?[1-9]|1[0-2])(-|\/)(?:0?[1-9]|1\d|2[0-8]))|(((?:(\d\d(?:0[48]|[2468][048]|[13579][26]))|(?:0[48]00|[2468][048]00|[13579][26]00))(-|\/)0?2(-|\/)29))))$"); if (!regex.test(inStrdate)) { return false; } return true; }
通過網上四處漫無目的的找資料以後,終於在斯達克裡面看到一條比較靠譜的解答
大概意思就是,在js中,正則表示式有兩種用法,一種是使用正則變數的方法來匹配字串,一種是用字串的方法來匹配正則表示式。
我這邊專案中使用的是第一種方法,正則變數方法匹配字串。
這種正則的使用方法在js中有兩種呼叫,分別叫做1、字面量模式;2、建構函式模式。
字面量模式:
var reg=/^\d+a/;
建構函式模式:
var reg = new RegExp("^\\d+a");
從上面我舉的兩個例子來看不難看出這兩種模式的區別……主要是在元字元的使用前,字面量模式下使用元字元可以直接呼叫,而建構函式模式下,需要先轉譯才能使用……
當然,如果在建構函式模式下覺得每次都轉譯會比較麻煩,也可以直接使用與元字元相對應的正則表示式,比如“\d”就直接使用“[0-9]”這樣子,只是我個人覺得還不如轉譯一下來得方便……
以上……
相關推薦
js中正則表示式元字元不起作用的問題……
今天在專案過程中發現一個問題,在網上拷的一段驗證日期的正則表示式在專案中不起作用,在很多線上測試正則表示式的網站上都做過測試,自己也讀了正則程式碼,就是看出來有什麼問題: function checkInDate(inStrdate) { var regex = n
JS中正則表示式的基礎知識點元字元
正則表示式:又稱為:規則表示式 英語;Regluar Expression 簡寫:regex,regexp或者RE 正則表示式:不是字串,是字串的匹配模式(規則) 需要用反斜槓進行轉移 正則表示式的建立: 1.字面量建立:由兩個斜槓/包裹 var reg = /a/
js中正則表示式test()方法
正則表示式即描述字串規則的表示式 /pattern/attrs /規則/屬性 new RegExp(pattern,attrs) regexObj.test(str)方法:測試正則表示式與指定字串是否匹
JS中正則表示式詳解及最基本的判斷手機號,郵箱,身份證
首先最基本的符號型別及含義整理一下。 1,最基本的符號:^ $ * + ? ^ 代表字串的開始位置 &nbs
關於js中正則表示式使用的一些簡單實現,比如驗證QQ號碼,郵箱,ip等等...
// 1. 簡單的匹配qq號碼(9位數字) var str = "123456788"; var regex1 = /^(\d{9})$/g; str.match(regex1); // 或者 var str = "niahfdb1345342123"
js中正則表示式判斷是否是數字
function isNumber(val){ var regPos = /^\d+(\.\d+)?$/; //非負浮點數 var regNeg = /^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9
js中正則表示式的貪婪模式和非貪婪模式
在講貪婪模式和惰性模式之前,先回顧一下JS正則基礎: 寫法基礎: ①不需要雙引號,直接用//包含 => /wehfwue123123/.test(); ②反斜槓\表示轉義 =>/\.jpg$/ ③用法基礎:.test(str); 語法: ①錨點類 /^a/=&g
【2017-11+10】 JS中正則表示式詳解
在JS的開發過程中,很多時候都需要驗證表單的正確性;使用正則表示式能夠很好的簡化表單的驗證過程。 在JS中,內建了 RegExp 物件,用來進行正則匹配。 一. RegExp 物件的使用
JS全域性正則表示式匹配同一字串結果不一致
示例 var regex = /^\d*$/g; var s = '2333'; console.log(regex.test(s)); console.log(regex.lastIndex);
php 中正則表示式詳解
概述 正則表示式是一種描述字串結果的語法規則,是一個特定的格式化模式,可以匹配、替換、擷取匹配的字串。常用的語言基本上都有正則表示式,如JavaScript、java等。其實,只有瞭解一種語言的正則使用,其他語言的正則使用起來,就相對簡單些。文字主要圍繞解決下面問題展開。 有哪些常用的
Python中正則表示式re.match的用法
re.match(pattern, string, flags) 第一個引數是正則表示式,如果匹配成功,則返回一個Match,否則返回一個None; 第二個引數表示要匹配的字串; 第三個引數是標緻位,用於控制正則表示式的匹配方式,如:是否區分大小寫,多行匹配等等。 需要特別注意的是,這個方法並不是完
WPF中正則表示式的部分應用
無論在哪一種語言中,正則表示式在一定程度上都可以簡化程式碼程式設計。以下為在WPF中的部分應用。 如var sql = new System.Text.RegularExpressions.Regex("[\\r\\n]").Replace(str, " "); 表示對str字串中匹配換行符
Python中正則表示式常用函式sub,search,findall,split等使用
1.原生字串r python中字串前面加上 r 表示原生字串,不會轉義。與大多數程式語言相同,正則表示式裡使用"\"作為轉義字元,這就可能造成反斜槓困擾。假如你需要匹配文字中的字元"\",那麼使用程式語言表示的正則表示式裡將需要4個反斜槓"\\":前兩個和後兩個分別用於在程式語言裡轉義成反斜
Python中正則表示式對單個字元,多個字元,匹配邊界等使用
Regular Expression,正則表示式,又稱正規表示式、正規表示法、正則表示式、規則表示式、常規表示法(英語:Regular Expression,在程式碼中常簡寫為regex、regexp或RE),是電腦科學的一個概
js利用正則表示式修改某個字元
js中由於沒有replaceAll()方法,需要替換字串的某些字元時候,得重複呼叫replace()方法,很是累贅。 可以採用正則表示式處理,如以下程式把toolsStartTime中的‘-’替換為‘/’。 var
java中正則表示式的瞭解與實踐記錄
Pattern pattern = Pattern.compile("^\\S+/q/"); Matcher matcher = pattern.matcher(resultString); String qrcode=""; while(matcher.find()){ String path
JS採用正則表示式獲取位址列引數
getQueryString:function(name) { var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)"); var r = decodeURI(decodeURI(window.location.search)
Java中正則表示式相關類Pattern和Matcher的使用
在Java中,java.util.regex包定義了正則表示式使用到的相關類,其中最主要的兩個類為:Pattern、Matcher: Pattern 編譯正則表示式後建立一個匹配模式; Matcher 使用Pattern例項提供的正則表示式對目標字串進行匹
JS利用正則表示式校驗手機號
JS利用正則表示式校驗手機號 緒 由於專案需求,需要在前端實現手機號碼的校驗。當然了,對於基本的格式校驗應該放在客戶端進行,而不需要再將待校驗的手機號傳送至服務端,在服務端完成校驗,然後將校驗結果返回給客戶端,客戶端根據返回的結果再進
js利用正則表示式獲取 / 設定URL引數
function getUrlParam(url, key) { var reg = new RegExp("[?&]" + key + "=([^&]+)", "gmi"); if (reg.test(