最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript 自定義常用方法第1/2頁

 更新時(shí)間:2009年08月21日 01:32:50   作者:  
在實(shí)際的js開發(fā)過程中,我們常常會(huì)有相似或相同的需求。這時(shí)候如果沒有很好的封裝(通用功能),代碼的重復(fù)將不可避免。
比如說頁面的字符處理,js的正則表達(dá)式驗(yàn)證等等。下面我就將我自己淺薄的開發(fā)經(jīng)驗(yàn)綜合網(wǎng)上的龐雜資源稍稍綜合整理一下,省得自己以后要用到時(shí)再搜索了。這個(gè)系列我會(huì)將平時(shí)常用的函數(shù)歸納整理起來,全當(dāng)作是拋磚引玉吧。
Code is cheap.看代碼:
一、常見的字符串處理函數(shù)

// 返回字符的長度,一個(gè)中文算2個(gè)
String.prototype.ChineseLength = function() {
return this .replace( / [ ^ \x00 - \xff] / g, " ** " ).length;
}

// 去掉字符串兩端的空白字符
String.prototype.Trim = function() {
return this .replace( / ( ^ \s + ) | (\s + $) / g, "" );
}

// 去掉字符左端的的空白字符
String.prototype.LeftTrim = function() {
return this .replace( / ( ^ [\s] * ) / g, "" );
}

// 去掉字符右端的空白字符
String.prototype.RightTrim = function() {
return this .replace( / ([\s] * $) / g, "" );
}

/* 忽略大小寫比較字符串是否相等
注:不忽略大小寫比較用 == 號 */
String.prototype.IgnoreCaseEquals = function(str) {
return this .toLowerCase() == str.toLowerCase();
}

/* 不忽略大小寫比較字符串是否相等 */
String.prototype.Equals = function(str) {
return ( this == str);
}

/* 比較字符串,根據(jù)結(jié)果返回 -1, 0
返回值 相同:0 不相同:-1
*/
String.prototype.CompareTo = function(str) {
if ( this == str) {
return 0 ;
} else
return - 1 ;
}

// 字符串替換
String.prototype.Replace = function(oldValue, newValue) {
var reg = new RegExp(oldValue, " g " );
return this .replace(reg, newValue);
}

// 檢查是否以特定的字符串結(jié)束
String.prototype.EndsWith = function(str) {
return this .substr( this .length - str.length) == str;
}

// 判斷字符串是否以指定的字符串開始
String.prototype.StartsWith = function(str) {
return this .substr( 0 , str.length) == str;
}

// 從左邊截取n個(gè)字符
String.prototype.LeftSlice = function(n) {
return this .substr( 0 , n);
}

// 從右邊截取n個(gè)字符
String.prototype.RightSlice = function(n) {
return this .substring( this .length - n);
}

// 統(tǒng)計(jì)指定字符出現(xiàn)的次數(shù)
String.prototype.Occurs = function(ch) {
// var re = eval("/[^"+ch+"]/g");
// return this.replace(re, "").length;
return this .split(ch).length - 1 ;
}


/* 構(gòu)造特定樣式的字符串,用 <span></span> 包含 */
String.prototype.Style = function(style) {
return " <span style=\ "" .concat(style, " \ " > " , this , " </span> " );
}

// 構(gòu)造類似StringBuilder的函數(shù)(連接多個(gè)字符串時(shí)用到,很方便)
function StringBuilder(str) {
this .tempArr = new Array();
}
StringBuilder.prototype.Append = function(value) {
this .tempArr.push(value);
return this ;
}
StringBuilder.prototype.Clear = function() {
this .tempArr.length = 0 ;
}
StringBuilder.prototype.toString = function() {
return this .tempArr.join( '' );
}

// 字符串常見方法及擴(kuò)展
function test() {
var testStr = " This is a test string " ;
var testStr2 = " 字符串 " ;
// alert(testStr.Trim());
// alert(testStr.LeftTrim());
// alert(testStr.RightTrim());
// alert(testStr2.ChineseLength());
// alert(testStr2.CompareTo(testStr));
// alert(testStr2.StartsWith("字符串"));
// document.write(testStr2.Style("color:red;width:100px"));
// alert(testStr2.LeftSlice(2));
// alert(testStr.RightSlice(7));
// alert(testStr.Occurs("s"));
/* StringBuilder測試 */
// var testStr3 = new StringBuilder("");
// testStr3.Append("test3\r\n");
// testStr3.Append("test3test3\r\n");
// testStr3.Append("test3");
// alert(testStr3.toString());
// testStr3.Clear();
// alert(testStr3.toString());
}

二、常用的正則表達(dá)式

/* -----------------------下面的函數(shù)還是涉及到了一些字符串的處理,但是當(dāng)作正則表達(dá)式的一部分看起來更合理----------------------------- */
// 檢查字符串是否由數(shù)字組成
String.prototype.IsDigit = function () {
var str = this .Trim();
return (str.replace( / \d / g, "" ).length == 0 );
}

// 校驗(yàn)字符串是否為浮點(diǎn)型
String.prototype.IsFloat = function () {
var str = this .Trim();
// 如果為空,則不通過校驗(yàn)
if (str == "" )
return false ;
// 如果是整數(shù),則校驗(yàn)整數(shù)的有效性
if (str.indexOf( " . " ) == - 1 ) {
return str.IsDigit();
}
else {
if ( / ^(\-?)(\d+)(.{1})(\d+)$ / g.test(str))
return true ;
else
return false ;
}
}

// 檢驗(yàn)是否是負(fù)整數(shù)
function isNegativeInteger(str) {
// 如果為空,則不通過校驗(yàn)
if (str == "" )
return false ;
if (str.IsDigit()) {
if (parseInt(str, 10 ) < 0 )
return true ;
else
return false ;
}
else
return false ;
}

// 檢驗(yàn)是否是負(fù)浮點(diǎn)數(shù)數(shù)
function isNegativeFloat(str) {
// 如果為空,則不通過校驗(yàn)
if (str == "" )
return false ;
if (str.IsFloat()) {
if (parseFloat(str, 10 ) < 0 )
return true ;
else
return false ;
}
else
return false ;
}

// 是否是由字母組成的字符串
function isCharacter(str) {
return ( / ^[A-Za-z]+$ / .test(str));
}

// 是否是字母、數(shù)字組成的字符串
function isNumberCharacter(str) {
return ( / ^[A-Za-z0-9]+$ / .test(str));
}

// 是否是email
function isEmail(str) {
return ( / (\S)+[@]{1}(\S)+[.]{1}(\w)+ / .test(str))
}

// 是否是url(評注:網(wǎng)上流傳的版本功能很有限,下面這個(gè)基本可以滿足需求)
function isUrl(str) {
return ( / ([a-zA-z]+:\ / \ / )?[^s]* / .test(str));
}

// 是否是ip地址
function isIpAddress(str) {
return / (\d+)\.(\d+)\.(\d+)\.(\d+) / .test(str);
}

// 是否是漢字組成的字符串
function isChinese(str) {
return ( / ^[\u4e00-\u9fa5]+$ / .test(str));
}

// 是否是雙字節(jié)字符(包括漢字在內(nèi))
function isUnicode(str) {
return ( / ^[\x00-\xff]+$ / .test(str));
}

// 是否是電話號碼
function isTelephone(str) {
// 兼容格式: 國家代碼(2到3位)-區(qū)號(2到3位)(-)?電話號碼(7到8位)-分機(jī)號(3位)
return ( / ^(([0\+]\d{2,3}-)?(0\d{2,3}))?[-]?(\d{7,8})(-(\d{3,}))?$ / .test(str));
}

// 是否是手機(jī)號碼
function isMobilePhone(str) {
return ( / ^((\(\d{3}\))|(\d{3}\-))?1[3,5]\d{9}$ / .test(str));
}

// 是否是QQ號碼(騰訊QQ號從10000開始)
function isQQNumber(str) {
return ( / ^[1-9][0-9]{4,}$ / .test(str));
}

// 是否是國內(nèi)的郵政編碼(中國郵政編碼為6位數(shù)字)
function isMailCode(str) {
return ( / \d{6} / .test(str));
}

// 是否是國內(nèi)的身份證號碼
function isIdNumber(str) {
return ( / \d{15}|\d{18} / .test(str));
}

關(guān)于正則表達(dá)式,網(wǎng)上還有很多的有深度的文章,我這里就拷貝幾段常用的代碼了,其實(shí)學(xué)懂了基本的正則知識后普通的驗(yàn)證不過是小菜一碟,不再贅述。

相關(guān)文章

  • Javascript6中字符串的四個(gè)新用法分享

    Javascript6中字符串的四個(gè)新用法分享

    本文將要介紹在JavaScript 6(ES6)里出現(xiàn)的一個(gè)關(guān)于字符串操作的語法特征,有需要的朋友們可以參考學(xué)習(xí),下面來一起來看看吧。
    2016-09-09
  • echarts同一頁面中四個(gè)圖表切換的js數(shù)據(jù)交互方法示例

    echarts同一頁面中四個(gè)圖表切換的js數(shù)據(jù)交互方法示例

    這篇文章主要給大家介紹了關(guān)于echarts同一頁面中四個(gè)圖表切換的js數(shù)據(jù)交互的相關(guān)資料,文中給出了完整的示例代碼供大家參考學(xué)習(xí),對大家的學(xué)習(xí)或者工作具有一定的幫助,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07
  • JavaScript逆向調(diào)試技巧總結(jié)分享

    JavaScript逆向調(diào)試技巧總結(jié)分享

    當(dāng)我們抓取網(wǎng)頁端數(shù)據(jù)時(shí),經(jīng)常被加密參數(shù)、加密數(shù)據(jù)所困擾,如何快速定位這些加解密函數(shù),尤為重要,下面這篇文章主要給大家介紹了關(guān)于JavaScript逆向調(diào)試技巧的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • Bootstrap入門書籍之(零)Bootstrap簡介

    Bootstrap入門書籍之(零)Bootstrap簡介

    Bootstrap是一個(gè)用于快速開發(fā) Web 應(yīng)用程序和網(wǎng)站的前端框架。Bootstrap 是基于 HTML、CSS、JAVASCRIPT 的。本文給大家介紹Bootstrap入門書籍之(零)Bootstrap簡介,需要的朋友參考下
    2016-02-02
  • input file上傳 圖片預(yù)覽功能實(shí)例代碼

    input file上傳 圖片預(yù)覽功能實(shí)例代碼

    input file上傳圖片預(yù)覽其實(shí)很簡單。今天小編就通過本文給大家介紹input file上傳 圖片預(yù)覽功能的實(shí)現(xiàn)代碼,比較簡單,對input file 上傳預(yù)覽功能感興趣的朋友參考下吧
    2016-10-10
  • JavaScript基于DOM操作實(shí)現(xiàn)簡單的數(shù)學(xué)運(yùn)算功能示例

    JavaScript基于DOM操作實(shí)現(xiàn)簡單的數(shù)學(xué)運(yùn)算功能示例

    這篇文章主要介紹了JavaScript基于DOM操作實(shí)現(xiàn)簡單的數(shù)學(xué)運(yùn)算功能,涉及javascript節(jié)點(diǎn)操作、元素遍歷及數(shù)學(xué)運(yùn)算相關(guān)操作技巧,需要的朋友可以參考下
    2017-01-01
  • JavaScript實(shí)現(xiàn)一個(gè)空中避難的小游戲

    JavaScript實(shí)現(xiàn)一個(gè)空中避難的小游戲

    最近利用Javascript實(shí)現(xiàn)了一個(gè)小游戲,覺著還不錯(cuò),所以分享給大家,下面這篇文章主要給大家介紹了利用JavaScript實(shí)現(xiàn)一個(gè)空中避難的小游戲的相關(guān)資料,文中給出了完整的示例代碼供大家參考學(xué)習(xí),需要的朋友們下面來一起看看吧。
    2017-06-06
  • JS Ajax請求會(huì)話過期處理問題解決方法分析

    JS Ajax請求會(huì)話過期處理問題解決方法分析

    這篇文章主要介紹了JS Ajax請求會(huì)話過期處理問題解決方法,結(jié)合實(shí)例形式簡單分析了ajax請求會(huì)話過期處理的相關(guān)原理、解決方法及操作注意事項(xiàng),需要的朋友可以參考下
    2019-11-11
  • 淺談js的html元素的父節(jié)點(diǎn),子節(jié)點(diǎn)

    淺談js的html元素的父節(jié)點(diǎn),子節(jié)點(diǎn)

    下面小編就為大家?guī)硪黄獪\談js的html元素的父節(jié)點(diǎn),子節(jié)點(diǎn)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-08-08
  • 使用JavaScript庫還是自己寫代碼?

    使用JavaScript庫還是自己寫代碼?

    有時(shí)候在寫JavaScript添加到你的網(wǎng)頁中的時(shí)候,你將需要決定是使用已有的可用的JavaScript庫還是自己寫所有代碼。其中每個(gè)各有優(yōu)缺點(diǎn),因此沒有任何一種方式對每個(gè)人來說都是絕對正確的選擇。
    2010-01-01

最新評論

安新县| 获嘉县| 丰镇市| 靖西县| 横峰县| 贵溪市| 金阳县| 宜章县| 精河县| 六枝特区| 平乡县| 安图县| 隆林| 潼南县| 乐昌市| 九台市| 阿坝| 江孜县| 安岳县| 桂平市| 泊头市| 平谷区| 漾濞| 汕头市| 承德县| 佛山市| 抚顺县| 黔江区| 吴江市| 南部县| 盘锦市| 卫辉市| 萨迦县| 香河县| 乐清市| 大邑县| 铁岭市| 南丰县| 安塞县| 灯塔市| 鸡东县|