高級Oracle DBA,善長Linux系統維運以及Oracle數據庫管理,開發,調優. 具有多年PL/SQL開發經驗.
分类: 系统运维
2007-03-09 09:20:11
Regex學習日記
第三章:
在Java Script中使用Regex
-------------------------------------------------------------------------
Regex在不同的語言中支持的程度是不一樣的,寫法的細節方面也會稍微差別.
但是其處理方式只是大同小異 .
本章在java Script 中實用Regex
第一部份:
String Search方法:
描述
傳回通用(regular)運算式搜尋中第一個子字串符合的位置。
語法
stringObj.search(rgexp)
search 方法的語法具有下列幾個部分:
部分 描述
stringObj : 必要的。要搜尋的 String 物件或文字。
rgexp : 必要的。包含要搜尋的模式之 Regular Expression 物件。
附註
search 方法會指出是否找到相符的項目。如果找到的話,search 方法會傳回一個整數值,
指出比對成功的字串開頭的位移,如果沒找到,則傳回 -1。若需進一步的資訊,請使用 match 方法。
以上部份摘自由mse自帶的chm手冊
我現在只做邏輯判斷,用function包裝一下
function StrFound(str,exp)
{
result =false ;
r = str.search(exp);
if (r != -1) {
result =true ;
}
return(result);
}
1. 判斷str是否為整數
function StrIsInt(str)
{
return StrFound(str,/^\d+$/) ;
}
2. 判斷str是否為數字,正負數,小數
function StrIsNumeric(str)
{
return StrFound(str,/^[+-]?\d+\.?\d*$/) ;
}
3. 判斷str是否為日期
function StrIsDate(str)
{
return StrFound(str,/^\d{4}([-\/])\d{1,2}\1\d{1,2}$/) ;
}
4. 判斷str是否為星期
function StrIsWeekday(str)
{
return StrFound(str, /\b(?:|Sun|Mon|Tue|Wed|Thu|Fri|Sat)\b/) ;
}
// 後面沒有加$,那麼Sunday,Monday都是可以的
5. 判斷str是否全為大寫
function StrIsUpper(str)
{
return StrFound(str, /^[A-Z]+/$) ;
}
6. 判斷str是否全為小寫
function StrIsLower(str)
{
return StrFound(str, /^[a-z]+/$) ;
}
第二部份:
String match方法:
描述
以陣列為例,使用所提供的 Regular Expression 物件,傳回在字串中搜尋的結果。
語法
stringObj.match(rgExp)
match 方法的語法具有下列幾個部分:
部分 描述
stringObj : 必要的。要執行搜尋的 String 物件或文字。
rgExp : 必要的。在搜尋時所使用的通用(regular)運算式。
附註
match 方法如同 exec 方法一樣,都會傳回一個陣列的值。陣列的元件(element) 0 包含
前次比對相符的字元。元件 1...n 則包含與通用運算式中任何加括弧的子字串相符的項目。
Example:
1. 取出字串中的日期 ,/i 指忽略大小寫
function test()
{
var r, re;
var s = "The Date is 2005/01/06, ....";
re = /(\d{4}\/\d{2}\/\d{2})/i;
r = s.match(re);
if (r != null )
{
alert(r[1] ) ;
}
return(r);
}
測試:
1.有一個URL為, 請正確分離出用戶,口令,主機.
2. 完善日期判斷 StrIsDate(str)函數,月份必須大於0小於13,日期大於0小於32 .
3. 將yyyy/mm/dd字串轉為mm/dd/yyyy又該如何處理? 提示String的replace 方法 ?
Write :阿飛
Date : 2005-08-02