Chinaunix首页 | 论坛 | 博客
  • 博客访问: 410848
  • 博文数量: 66
  • 博客积分: 1416
  • 博客等级: 上尉
  • 技术积分: 922
  • 用 户 组: 普通用户
  • 注册时间: 2006-09-16 10:37
个人简介

高級Oracle DBA,善長Linux系統維運以及Oracle數據庫管理,開發,調優. 具有多年PL/SQL開發經驗.

文章分类

全部博文(66)

文章存档

2015年(9)

2014年(4)

2013年(5)

2010年(1)

2009年(3)

2008年(6)

2007年(30)

2006年(8)

我的朋友

分类: 系统运维

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

阅读(1764) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~