首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

常用 JavaScript 正則表達式模式大全(含中文、IP、Email、URL 驗證)

     編輯:PHP 綜合知識

字元與字串處理

用途正則模式說明
匹配雙位元組字元(含中文)[^\x00-\xff]可用於計算字串長度(中文算 2,ASCII 算 1)
匹配空行\n[\s| ]*\r
匹配 HTML 標籤/<(.*)>.*<\/>|<(.*) \/>/簡易版,複雜 HTML 建議用 DOMParser
匹配首尾空白(^\s*)|(\s*$)可實作 trim()

String.prototype.trim 實作

String.prototype.trim = function() {
    return this.replace(/(^\s*)|(\s*$)/g, "");
};

IP 地址轉數值

function IP2V(ip) {
    var re = /(\d+)\.(\d+)\.(\d+)\.(\d+)/g;
    if (re.test(ip)) {
        return RegExp.$1 * Math.pow(255, 3) +
               RegExp.$2 * Math.pow(255, 2) +
               RegExp.$3 * 255 +
               RegExp.$4 * 1;
    }
    throw new Error("Not a valid IP address!");
}

// 更簡單的 split 版本
var ip = "10.100.20.168";
var parts = ip.split(".");
var val = parts[0]*255*255*255 + parts[1]*255*255 + parts[2]*255 + parts[3]*1;

常用驗證模式

驗證項目正則模式
Email\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
URLhttps://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?

去除重複字元

var s = "abacabefgeeii";
var s1 = s.replace(/(.).*/g, "$1");  // 修正:取第一個字元
var re = new RegExp("[" + s1 + "]", "g");
var s2 = s.replace(re, "");
alert(s1 + s2); // 結果:abcefgi

從 URL 擷取檔名

var s = "https://www.example.com/page1.htm";
s = s.replace(/(.*\/)([^.]+).*/ig, "$2");
alert(s); // page1

表單輸入限制(inline 事件)

限制類型onkeyup / onbeforepaste 代碼
僅中文value=value.replace(/[^\u4E00-\u9FA5]/g,'')
僅全形字元value=value.replace(/[^\uFF00-\uFFFF]/g,'')
僅數字value=value.replace(/[^\d]/g,'')
數字與英文value=value.replace(/[\W]/g,'')

完整寫法範例(僅中文):

<input type="text" 
    onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" 
    onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))" />

Unicode 範圍參考

  • \u4E00-\u9FA5:CJK 統一表意文字(常用漢字)
  • \uFF00-\uFFFF:半形/全形變體、特殊符號區
  • \u3040-\u309F:平假名
  • \u30A0-\u30FF:片假名
  • \uAC00-\uD7AF:韓文音節

現代替代方案

  • inputmode、pattern 屬性(HTML5 原生驗證)
  • Intl.Segmenter 斷詞
  • 輸入法編輯器 (IME) 模式控制
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved