当前位置:  技术问答>java相关

正则表达式修改form中资料!

    来源: 互联网  发布时间:2015-09-09

    本文导语:  JavaScript 在第四版之後,針對正規表示法增加了數個字串方法,這些字串方法的用途很廣,可以列舉如下:  字串方法 功能   str.search(re) 正規式 re 在某個字串 str 出現的位置   str.match(re) 抽取符合規格的部分...

JavaScript 在第四版之後,針對正規表示法增加了數個字串方法,這些字串方法的用途很廣,可以列舉如下: 

字串方法 功能  
str.search(re) 正規式 re 在某個字串 str 出現的位置  
str.match(re) 抽取符合規格的部分,並以陣列傳回  
str.replace(re, new_part) 代換符合正規式 re 的部分  


使用正規表示法及上述的字串方法,我們對字串的處理能力大增,不但可以進行搜尋比對,還可以立刻修改字串(例如:即時修改表單資料),本節將說明這些功能。 

若要尋找某個正規式在一個字串的出現位置,可用字串的 search 方法,例如: 



str = "現任總統是李輝,李炳輝是金門王的搭檔";
re = /李.輝/;
index = str.search(re);
document.write(index)


將會印出 



其中 str.search(re) 將會傳回符合 re 的第一個位置(此例為5)。若字串 str 不符合 re,則回傳值為 -1。若只是要判斷輸入字串是否符合某個正規式,也可以使用 re.test(str),這在上一節已經說明過了。 

使用字串的 match 方法,可在一個字串中,取出符合某個正規表示式的子字串。在下例中,我們將輸入字串和正規式「/李.輝/g」比對,並將符合部分印出: 



str = "現任總統是李輝,李炳輝是金門王的搭檔";
re = /李.輝/g;
found = str.match(re);
document.write(found)

其中「.」可比對任何一個字元。上述程式碼印出結果為: 


李輝,李炳輝 
善用正規表示式及字串的 replace 方法,就可以對字串進行任意修改。假設有一個字串如下: 

str = "現任總統是李輝,李輝是現任總統";

若要將第一個「李輝」代換成「陳水」,印出的結果如下: 


現任總統是陳水,李輝是現任總統 
若使用正規表示法,其程式碼如下: 



str = "現任總統是李輝,李輝是現任總統";
re = /李輝/;
newstr = str.replace(re, "陳水");
document.write(newstr)

現任總統是陳水,李輝是現任總統 

在上例中,re 就是一個正規式,字串的 replace 方法將符合正規式的部分代換成「陳水」,並將新字串傳回給變數 newstr。若要將所有的「李輝」改成「陳水」,只需將正規式改成「/李輝/g」就可以了。 

處理表單資料時,最常用的資料修改方式就是去除前後的空白。這種例行工作就可以由正規表示法及字串的 replace 方法來輕鬆完成。例如: 

中文大名:  
在上例中,若按下「檢驗」,JavaScript 即會將所有的空白部分(含中文大五碼)刪除。程式碼如下: 



function checkChineseName(UI) {
UI.value = UI.value.replace(/[s ]+/g, "");    // s & 全形空白
}


中文大名:  

對於英文的輸入,我們通常要消除字頭及字尾的空白,並將句中的多個空白合成一個空格,例如: 

英文大名:  
程式碼如下: 



function checkEnglishName(UI) {
var str = UI.value;
// get rid of leading and trailing white spaces
str = str.replace(/^[s ]+/g, "");
str = str.replace(/[s ]+$/g, "");    // s & 全形空白
// merge multiple white spaces into one
str = str.replace(/[s ]+/g, " ");
UI.value = str;
}


英文大名:  

在正規表示法的比對過程中,所採用的方法是「貪心比對」(Greedy Match),因此會盡量「貪」到越多的字元越好,例如: 



str = "fred xxxxx barney";
re = /x+/;
found = str.match(re);
document.write(found)


印出結果為: 


xxxxx 
在使用「貪心比對」時,會採用「越左越貪」的原則,例如: 



str = "a xx b xxxx b xxx d";
re = /a(.*)b(.*)d/;
found = str.match(re);
document.write("RegExp.$1 = "+RegExp.$1+"
")
document.write("RegExp.$2 = "+RegExp.$2+"
")


印出結果為: 


RegExp.$1 = xx b xxxx 
RegExp.$2 = xxx 

在上例中,我們在正規式中加了刮號,符合刮號中的比對條件者,將被設定至 RegExp.$1、RegExp.$2 等變數中,以便後續處理。(以簡化起見,RegExp.$1 可以簡寫成 $1,RegExp.$2 可以簡寫成 $2,依此類推。) 


|
up

    
 
 

您可能感兴趣的文章:

  • Perl 正则表达式之角色化记忆
  • js正则表达式之RegExp对象之compile方法 编译正则表达式
  • Linux c++ boost库正则表达式用法
  • 正则表达式 表示 非指定字符串开头的正则
  • Python通过正则表达式获取,去除(过滤)或者替换HTML标签的几种方法
  • 正则表达式问题,使用正则表达式找出指定字符串并替换?
  • linux bash shell命令:文本搜索工具grep正则表达式元字符集(基本集)
  • 正则表达式概述 什么是正则表达式 .
  • JS 正则表达式的相关方法(正则学习笔记1)
  • jQuery中的正则表达式分析 正则基础
  • java 正则表达式基础,实例学习资料收集大全 原创
  • 哪些命令可以使用正则表达式
  • 常用正则表达式及评注-学习正则必备
  • (菜鸟飞飞)问个正则表达式的问题
  • 向大家推荐一个收集整理正则表达式的网站
  • 正则表达式的问题
  • 关于正则表达式匹配问题
  • Python 匹配任意字符(包括换行符)的正则表达式写法
  • php 正则 不包含某字符串的正则表达式
  • Java正则表达式 reb4j
  • 大虾,请问谁有正则表达式的资料?谢谢!
  • java使用正则表达校验手机号码示例(手机号码正则)
  • 寻求正则表达试
  • 正则表达式中使用变量赋值
  • 用正则表达式来表示中文
  • java正则表达式验证函数
  • linux下有什么函数可以处理正则表达式?
  • emacs里空行的正则表达式如何写?
  • 关于sed的正则表达式
  • 正则表达式小疑问
  • killall 正则表达式用法
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • c#正则过滤图片标签 asp.net正则过滤的例子
  • 正则匹配后面非指定字符的正则 原创
  • PHP html标签正则替换并可自定义正则规则
  • Python 匹配任意字符(包括换行符)的正则表达式写法 iis7站长之家
  • 正则表达式口诀_学习正则的朋友值得一看
  • Javascript里的两种使用正则的方法
  • 常用正则 常用的C#正则表达式
  • asp.net正则表达式提取中文的代码示例
  • 正则式 ^[^ ](.*[^ ])?$ 的含义
  • 正则式如何只匹配一个汉字?
  • 正则表达式 口诀 学习正则的朋友看看
  • php使用正则过滤js脚本代码实例
  • shell ip 正则表达式
  • 让URL只允许一些字符的正则表达式
  • 关于通配符和正则表达式
  • 100分。关于字符串的正则表达式。
  • 正则表达式,相关链接
  • PHP正则匹配图片并给图片加链接详解
  • 正则表达式的一个小问题!!!
  • shell脚本中判断字符串匹配正则式的问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3