程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> 整頓很具體的Java正則表達式應用年夜全

整頓很具體的Java正則表達式應用年夜全

編輯:關於JAVA

整頓很具體的Java正則表達式應用年夜全。本站提示廣大學習愛好者:(整頓很具體的Java正則表達式應用年夜全)文章只能為提供參考,不一定能成為您想要的結果。以下是整頓很具體的Java正則表達式應用年夜全正文


本文的全體內容都是針對Java正則表達式語法停止整頓的,分享給年夜家:

[正則表達式]文本框輸出內容掌握
整數或許小數:^[0-9]+\.{0,1}[0-9]{0,2}$
只能輸出數字:"^[0-9]*$"。
只能輸出n位的數字:"^\d{n}$"。
只能輸出至多n位的數字:"^\d{n,}$"。
只能輸出m~n位的數字:。"^\d{m,n}$"
只能輸出零和非零開首的數字:"^(0|[1-9][0-9]*)$"。
只能輸出有兩位小數的正實數:"^[0-9]+(.[0-9]{2})?$"。
只能輸出有1~3位小數的正實數:"^[0-9]+(.[0-9]{1,3})?$"。
只能輸出非零的正整數:"^\+?[1-9][0-9]*$"。
只能輸出非零的負整數:"^\-[1-9][]0-9"*$。
只能輸出長度為3的字符:"^.{3}$"。
只能輸出由26個英文字母構成的字符串:"^[A-Za-z]+$"。
只能輸出由26個年夜寫英文字母構成的字符串:"^[A-Z]+$"。
只能輸出由26個小寫英文字母構成的字符串:"^[a-z]+$"。
只能輸出由數字和26個英文字母構成的字符串:"^[A-Za-z0-9]+$"。
只能輸出由數字、26個英文字母或許下劃線構成的字符串:"^\w+$"。
驗證用戶暗碼:"^[a-zA-Z]\w{5,17}$"准確格局為:以字母開首,長度在6~18之間,只能包括字符、數字和下劃線。
驗證能否含有^%&',;=?$\"等字符:"[^%&',;=?$\x22]+"。
只能輸出漢字:"^[\u4e00-\u9fa5]{0,}$"
驗證Email地址:"^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$"。
驗證InternetURL:"^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$"。
驗證德律風號碼:"^(\(\d{3,4}-)|\d{3.4}-)?\d{7,8}$"准確格局為:"XXX-XXXXXXX"、"XXXX-XXXXXXXX"、"XXX-XXXXXXX"、"XXX-XXXXXXXX"、"XXXXXXX"和"XXXXXXXX"。
驗證身份證號(15位或18位數字):"^\d{15}|\d{18}$"。
驗證一年的12個月:"^(0?[1-9]|1[0-2])$"准確格局為:"01"~"09"和"1"~"12"。
驗證一個月的31天:"^((0?[1-9])|((1|2)[0-9])|30|31)$"准確格局為;"01"~"09"和"1"~"31"。
婚配中文字符的正則表達式: [\u4e00-\u9fa5]
婚配雙字節字符(包含漢字在內):[^\x00-\xff]
運用:盤算字符串的長度(一個雙字節字符長度計2,ASCII字符計1)
String.prototype.len=function(){return this.replace(/[^\x00-\xff]/g,"aa").length;}
婚配空行的正則表達式:\n[\s| ]*\r
婚配html標簽的正則表達式:<(.*)>(.*)<\/(.*)>|<(.*)\/>
婚配首尾空格的正則表達式:(^\s*)|(\s*$)
運用:javascript中沒有像vbscript那樣的trim函數,我們便可以應用這個表達式來完成,以下:

String.prototype.trim = function()
{
return this.replace(/(^\s*)|(\s*$)/g, "");
}
應用正則表達式分化和轉換IP地址:
上面是應用正則表達式婚配IP地址,並將IP地址轉換成對應數值的Javascript法式:
function IP2V(ip)
{
re=/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //婚配IP地址的正則表達式
if(re.test(ip))
{
return RegExp.$1*Math.pow(255,3))+RegExp.$2*Math.pow(255,2))+RegExp.$3*255+RegExp.$4*1
}
else
{
throw new Error("Not a valid IP address!")
}
}

不外下面的法式假如不消正則表達式,而直接用split函數來分化能夠更簡略,法式以下:

var ip="10.100.20.168"
ip=ip.split(".")
alert("IP值是:"+(ip[0]*255*255*255+ip[1]*255*255+ip[2]*255+ip[3]*1))

婚配Email地址的正則表達式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
婚配網址URL的正則表達式:http://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?

應用正則表達式限制網頁表單裡的文本框輸出內容:

用正則表達式限制只能輸出中文:onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))"
用正則表達式限制只能輸出全角字符: onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\uFF00-\uFFFF]/g,''))"
用正則表達式限制只能輸出數字:onkeyup="value=value.replace(/[^\d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
用正則表達式限制只能輸出數字和英文:onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))"
<input onkeyup="value=value.replace(/[^\u4E00-\u9FA5\w]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5\w]/g,''))" value="許可下劃線,數字字母和漢字">
<script language="javascript">
if (document.layers)//觸發鍵盤事宜
document.captureEvents(Event.KEYPRESS)
function xz(thsv,nob){
if(nob=="2"){
window.clipboardData.setData("text","")
alert("防止不法字符輸出,請勿復制字符");
return false;
}
if (event.keyCode!=8 && event.keyCode!=16 && event.keyCode!=37 && event.keyCode!=38 && event.keyCode!=39 && event.keyCode!=40){
thsvv=thsv.value;//輸出的值
thsvs=thsvv.substring(thsvv.length-1);//輸出的最初一個字符
//thsvss=thsvv.substring(0,thsvv.length-1);//去失落最初一個毛病字符
if (!thsvs.replace(/[^\u4E00-\u9FA5\w]/g,'') || event.keyCode==189){//正則除去符號和下劃線 key
thsv.value='請勿輸出不法符號 ['+thsvs+']';
alert('請勿輸出不法符號 ['+thsvs+']');
thsv.value="";
return false;
}
}
}
</script>
<input onkeyup="xz(this,1)" onPaste="xz(this,2)" value="">許可數字字母和漢字
<script language="javascript">
<!--
function MaxLength(field,maxlimit){
var j = field.value.replace(/[^\x00-\xff]/g,"**").length;
//alert(j);
var tempString=field.value;
var tt="";
if(j > maxlimit){
for(var i=0;i<maxlimit;i++){
if(tt.replace(/[^\x00-\xff]/g,"**").length < maxlimit)
tt = tempString.substr(0,i+1);
else
break;
}
if(tt.replace(/[^\x00-\xff]/g,"**").length > maxlimit)
tt=tt.substr(0,tt.length-1);
field.value = tt;
}else{
;
}
}
</script>
單行文本框掌握<br />
<INPUT type="text" id="Text1" name="Text1" onpropertychange="MaxLength(this, 5)"><br />
多行文本框掌握:<br />
<TEXTAREA rows="14"
cols="39" id="Textarea1" name="Textarea1" onpropertychange="MaxLength(this, 15)"></TEXTAREA><br />
掌握表單內容只能輸出數字,中文....
<script>
function test() 
{
if(document.a.b.value.length>50)
{
alert("不克不及跨越50個字符!");
document.a.b.focus();
return false;
}
}
</script>
<form name=a onsubmit="return test()">
<textarea name="b" cols="40" wrap="VIRTUAL" rows="6"></textarea>
<input type="submit" name="Submit" value="check">
</form>
只能是漢字
<input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')">
只能是英文字符
<script language=javascript>
function onlyEng()
{
if(!(event.keyCode>=65&&event.keyCode<=90))
 event.returnValue=false;
}
</script>
<input onkeydown="onlyEng();">
<input name="coname" type="text" size="50" maxlength="35" class="input2" onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))">
只能是數字
<script language=javascript>
function onlyNum()
{
if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105)))
//斟酌小鍵盤上的數字鍵
 event.returnValue=false;
}
</script>
<input onkeydown="onlyNum();">
只能是英文字符和數字
<input onkeyup="value=value.replace(/[\W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\d]/g,''))">
驗證為email格局
<SCRIPT LANGUAGE=Javascript RUNAT=Server>
function isEmail(strEmail) {
if (strEmail.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
return true;
else
alert("oh");
}
</SCRIPT>
<input type=text onblur=isEmail(this.value)>
屏障症結字(sex , fuck) - 已修正
<script language="JavaScript1.2">
function test() {
if((a.b.value.indexOf ("sex") == 0)||(a.b.value.indexOf ("fuck") == 0)){
 alert("五講四美三酷愛");
 a.b.focus();
 return false;}
}
</script>
<form name=a onsubmit="return test()">
<input type=text name=b>
<input type="submit" name="Submit" value="check">
</form>

限制文本框裡只能輸出數字
<input onkeyup="if(event.keyCode !=37 && event.keyCode != 39) value=value.replace(/\D/g,'');"onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/\D/g,''))"> 
<PIXTEL_MMI_EBOOK_2005>2        </PIXTEL_MMI_EBOOK_2005>

正則表達式是一種文本形式,包含通俗字符(例如,a 到 z 之間的字母)和特別字符(稱為“元字符”)。形式描寫在搜刮文本時要婚配的一個或多個字符串。

字符 解釋
\將下一字符標志為特別字符、文本、反向援用或八進制本義符。例如,“n”婚配字符“n”。“\n”婚配換行符。序列“\\”婚配“\”,“\(”婚配“(”。
^婚配輸出字符串開端的地位。假如設置了 RegExp 對象的 Multiline 屬性,^ 還會與“\n”或“\r”以後的地位婚配。
$婚配輸出字符串開頭的地位。假如設置了 RegExp 對象的 Multiline 屬性,$ 還會與“\n”或“\r”之前的地位婚配。
*零次或屢次婚配後面的字符或子表達式。例如,zo* 婚配“z”和“zoo”。* 等效於 {0,}。
+一次或屢次婚配後面的字符或子表達式。例如,“zo+”與“zo”和“zoo”婚配,但與“z”不婚配。+ 等效於 {1,}。
?零次或一次婚配後面的字符或子表達式。例如,“do(es)?”婚配“do”或“does”中的“do”。? 等效於 {0,1}。
{n}n 長短負整數。正好婚配 n 次。例如,“o{2}”與“Bob”中的“o”不婚配,但與“food”中的兩個“o”婚配。
{n,}n 長短負整數。至多婚配 n 次。例如,“o{2,}”不婚配“Bob”中的“o”,而婚配“foooood”中的一切 o。“o{1,}”等效於“o+”。“o{0,}”等效於“o*”。
{n,m}M 和 n 長短負整數,個中 n <= m。婚配至多 n 次,至少 m 次。例如,“o{1,3}”婚配“fooooood”中的頭三個 o。'o{0,1}' 等效於 'o?'。留意:您不克不及將空格拔出逗號和數字之間。
?當此字符緊隨任何其他限制符(*、+、?、{n}、{n,}、{n,m})以後時,婚配形式是“非貪婪的”。“非貪婪的”形式婚配搜刮到的、盡量短的字符串,而默許的“貪婪的”形式婚配搜刮到的、盡量長的字符串。例如,在字符串“oooo”中,“o+?”只婚配單個“o”,而“o+”婚配一切“o”。
.婚配除“\n”以外的任何單個字符。若要婚配包含“\n”在內的隨意率性字符,請應用諸如“[\s\S]”之類的形式。
(pattern)婚配 pattern 並捕捉該婚配的子表達式。可使用 $0…$9 屬性從成果“婚配”聚集中檢索捕捉的婚配。若要婚配括號字符 ( ),請應用“\(”或許“\)”。
(?:pattern)婚配 pattern 但不捕捉該婚配的子表達式,即它是一個非捕捉婚配,不存儲供今後應用的婚配。這關於用“or”字符 (|) 組合形式部件的情形很有效。例如,'industr(?:y|ies) 是比 'industry|industries' 更經濟的表達式。
(?=pattern)履行正向猜測先行搜刮的子表達式,該表達式婚配處於婚配 pattern 的字符串的肇端點的字符串。它是一個非捕捉婚配,即不克不及捕捉供今後應用的婚配。例如,'Windows (?=95|98|NT|2000)' 婚配“Windows 2000”中的“Windows”,但不婚配“Windows 3.1”中的“Windows”。猜測先行不占用字符,即產生婚配後,下一婚配的搜刮緊隨上一婚配以後,而不是在構成猜測先行的字符後。
(?!pattern)履行反向猜測先行搜刮的子表達式,該表達式婚配不處於婚配 pattern 的字符串的肇端點的搜刮字符串。它是一個非捕捉婚配,即不克不及捕捉供今後應用的婚配。例如,'Windows (?!95|98|NT|2000)' 婚配“Windows 3.1”中的 “Windows”,但不婚配“Windows 2000”中的“Windows”。猜測先行不占用字符,即產生婚配後,下一婚配的搜刮緊隨上一婚配以後,而不是在構成猜測先行的字符後。
x|y婚配 x 或 y。例如,'z|food' 婚配“z”或“food”。'(z|f)ood' 婚配“zood”或“food”。
[xyz]字符集。婚配包括的任一字符。例如,“[abc]”婚配“plain”中的“a”。
[^xyz]反向字符集。婚配未包括的任何字符。例如,“[^abc]”婚配“plain”中的“p”。
[a-z]字符規模。婚配指定規模內的任何字符。例如,“[a-z]”婚配“a”到“z”規模內的任何小寫字母。
[^a-z]反向規模字符。婚配不在指定的規模內的任何字符。例如,“[^a-z]”婚配任何不在“a”到“z”規模內的任何字符。
\b婚配一個字界限,即字與空格間的地位。例如,“er\b”婚配“never”中的“er”,但不婚配“verb”中的“er”。
\B非字界限婚配。“er\B”婚配“verb”中的“er”,但不婚配“never”中的“er”。
\cx婚配 x 指導的掌握字符。例如,\cM 婚配 Control-M 或回車符。x 的值必需在 A-Z 或 a-z 之間。假如不是如許,則假定 c 就是“c”字符自己。
\d數字字符婚配。等效於 [0-9]。
\D非數字字符婚配。等效於 [^0-9]。
\f換頁符婚配。等效於 \x0c 和 \cL。
\n換行符婚配。等效於 \x0a 和 \cJ。
\r婚配一個回車符。等效於 \x0d 和 \cM。
\s婚配任何空白字符,包含空格、制表符、換頁符等。與 [ \f\n\r\t\v] 等效。
\S婚配任何非空白字符。與 [^ \f\n\r\t\v] 等效。
\t制表符婚配。與 \x09 和 \cI 等效。
\v垂直制表符婚配。與 \x0b 和 \cK 等效。
\w婚配任何字類字符,包含下劃線。與“[A-Za-z0-9_]”等效。
\W與任何非單詞字符婚配。與“[^A-Za-z0-9_]”等效。
\xn婚配 n,此處的 n 是一個十六進制本義碼。十六進制本義碼必需正好是兩位數長。例如,“\x41”婚配“A”。“\x041”與“\x04”&“1”等效。許可在正則表達式中應用 ASCII 代碼。
\num婚配 num,此處的 num 是一個正整數。到捕捉婚配的反向援用。例如,“(.)\1”婚配兩個持續的雷同字符。
\n標識一個八進制本義碼或反向援用。假如 \n 後面至多有 n 個捕捉子表達式,那末 n 是反向援用。不然,假如 n 是八進制數 (0-7),那末 n 是八進制本義碼。
\nm標識一個八進制本義碼或反向援用。假如 \nm 後面至多有 nm 個捕捉子表達式,那末 nm 是反向援用。假如 \nm 後面至多有 n 個捕捉,則 n 是反向援用,前面跟有字符 m。假如兩種後面的情形都不存在,則 \nm 婚配八進制值 nm,個中 n 和 m 是八進制數字 (0-7)。
\nml當 n 是八進制數 (0-3),m 和 l 是八進制數 (0-7) 時,婚配八進制本義碼 nml。
\un婚配 n,個中 n 是以四位十六進制數表現的 Unicode 字符。例如,\u00A9 婚配版權符號 (?)。

特具體,特具體的Java正則表達式語法年夜全,願望年夜家愛好。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved