자주 사용 하 는 정규 표현 식 을 수집 합 니 다.

정규 표현 식 은 문자열 처리,폼 검증 등 장소 에 사용 되 며 실 용적 이 고 효율 적 이지 만 사용 할 때 항상 자신 이 없어 서 인터넷 에서 찾 아야 합 니 다.나 는 자주 사용 하 는 표현 식 을 여기에 저장 해서 잊 어 버 리 는 용도 로 사용한다.이 게시 물 은 언제든지 업 데 이 트 됩 니 다.본 사이트 에 계속 관심 을 가 져 주 십시오.
중국어 문자 와 일치 하 는 정규 표현 식:[\u4e 00-\u9fa 5]
두 바이트 문자 일치(한자 포함):[^\x00-\xff]
응용 프로그램:문자열 의 길 이 를 계산 합 니 다(두 바이트 문자 길이 계 2,ASCII 문자 계 1)

String.prototype.len=function(){return this.replace([^\x00-\xff]/g,"aa").length;}
빈 줄 과 일치 하 는 정규 표현 식:[\s|]*\r
HTML 태그 와 일치 하 는 정규 표현 식:/<(.*)>.*<\/\1>|<(.*)\/>/
앞 뒤 공백 과 일치 하 는 정규 표현 식:(^\s*)|(\s*$)

String.prototype.trim = function()
{
  return this.replace(/(^\s*)|(\s*$)/g, "");
}
정규 표현 식 으로 IP 주 소 를 분해 하고 변환 합 니 다.
다음은 정규 표현 식 을 이용 하여 IP 주 소 를 일치 시 키 고 IP 주 소 를 대응 하 는 수치 로 변환 하 는 자 바스 크 립 트 프로그램 입 니 다.

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))
이메일 주소 와 일치 하 는 정규 표현 식:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
URL 과 일치 하 는 정규 표현 식:http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*?
정규 표현 식 을 이용 하여 문자열 에서 중복 되 는 문 자 를 제거 하 는 알고리즘 프로그램:[주:이 프로그램 이 정확 하지 않 습 니 다.원인 은 빨간색 글꼴 입 니 다]

var s="abacabefgeeii"
var s1=s.replace(/(.).*\1/g,"$1")
var re=new RegExp("["+s1+"]","g")
var s2=s.replace(re,"") 
alert(s1+s2) //   :abcefgi
===============================
하면,만약,만약...
결 과 는 틀 렸 다.결 과 는 abeicfgg.
정규 표현 식 의 능력 에 한계 가 있 습 니 다.
나 는 원래 CSDN 에 중복 문 자 를 제거 하 는 방법 을 찾 는 표현 식 을 붙 였 으 나 찾 지 못 했다.이것 은 내 가 생각 할 수 있 는 가장 간단 한 실현 방법 이다.사 고 는 사용 후 인용 에 중 복 된 문 자 를 추출 한 다음 에 중 복 된 문자 로 두 번 째 표현 식 을 만 들 고 중복 되 지 않 는 문 자 를 가 져 오 는 것 입 니 다.이 방법 은 문자 순서 에 필요 한 문자열 이 적용 되 지 않 을 수 있 습 니 다.
정규 표현 식 으로 URL 주소 에서 파일 이름 을 추출 해 야 하 는 javascript 프로그램 입 니 다.다음 결 과 는 page 1 입 니 다.

s="http://www.9499.net/page1.htm"
s=s.replace(/(.*\/){0,}([^\.]+).*/ig,"$2")
alert(s)
정규 표현 식 을 사용 하여 웹 폼 의 텍스트 상자 의 입력 내용 을 제한 합 니 다:
정규 표현 식 으로 중국어 만 입력 할 수 있 도록 제한:

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,''))"
응용:javascript 에 vbscript 와 같은 trim 함수 가 없습니다.우 리 는 이 표현 식 을 이용 하여 다음 과 같이 실현 할 수 있 습 니 다.

/**
 *        ,            
 * 
 * @param str
 * @returns
 */
function gbLength(str) {
  return typeof str === "string" ? str.length + str.replace(/[\x00-\x7f]/g, '').length + 1 >> 1 : 0;
}

/**
 *              ,            
 * 
 * @param str
 * @param length
 * @returns
 */
function gbSubstr(str, length) {
  if (typeof str !== "string")
    return str;
  length += length;
  for ( var n = 0, L = str.length; n < L && length > 0; n++){
    length -= str.charCodeAt(n) > 127 ? 2 : 1;
  }
  return str.substr(0, n);
}
/**
 *               ,          ,            ...
 * 
 * @param str
 * @param len
 * @returns
 */
function fit_length(str, len){
  len = len || 16;
  if (typeof str !== "string" || str.length <= len || gbLength(str) <= len){
    return str;
  }
  var ret = gbSubstr(str, len - 2);
  return ret + '..';
}
var replaceCJK = /[^\x00-\xff]/g,
  testCJK  = /[^\x00-\xff]/;

    cjkLength: function(strValue){
      return strValue.replace(replaceCJK, "lv").length;
    },
    isCjk: function(strValue){
      return testCJK.test(strValue);
    },
    cutString: function(str,len,suffix,slen){
      suffix = suffix || '';
      slen = slen || suffix.length;
      if(str.length > len){
        str = str.substr(0,len - slen) + suffix;
      }
      return str;
    },
    cutCjkString: function(str,len,suffix,slen){
      suffix = suffix || '';
      slen = slen || suffix.length;
      len -= slen;
      if(this.cjkLength(str) <= len){
        return str;
      }
      var s = str.split(''),c = 0,tmpA = [];
      for(var i=0;i<s.length;i+=1){
        if(c < len){
          tmpA[tmpA.length] = s[i];
        }
        if(this.isCjk(s[i])){
          c += 2;
        }else{
          c += 1;
        }
      }
      return tmpA.join('') + suffix;
    }
  }
이상 의 내용 은 제 가 평소에 수집 하 는 정규 표현 식(중국어 문자 와 일치 하고 두 바이트 문자 와 일치 하 며 HTML 태그 와 일치 하 며 빈 줄 과 so on~~)을 공유 합 니 다.여러분 이 좋아 하 시 기 를 바 랍 니 다.더 많은 것 을 알 고 싶 으 시 면 본 사이트 에 계속 관심 을 가 져 주 십시오.

좋은 웹페이지 즐겨찾기