>웹 프론트엔드 >JS 튜토리얼 >자바스크립트 정규식 정의 및 소개

자바스크립트 정규식 정의 및 소개

零下一度
零下一度원래의
2017-07-18 16:01:441709검색

JavaScript 정규 표현식

정규 표현식(영어: 정규 표현식, 종종 코드에서 regex, regexp 또는 RE로 축약됨)은 단일 문자열을 사용하여 특정 구문 규칙을 따르는 일련의 문자열 검색 패턴을 설명하고 일치시킵니다.

텍스트 검색 및 텍스트 교체에 사용할 수 있는 검색 모드입니다.

정규 표현식이란 무엇인가요?

정규 표현식은 일련의 문자로 구성된 검색 패턴입니다.

텍스트에서 데이터를 검색할 때 검색 패턴을 사용하여 쿼리하려는 내용을 설명할 수 있습니다.

정규 표현식은 단순한 문자일 수도 있고 더 복잡한 패턴일 수도 있습니다.

정규식은 모든 텍스트 검색 및 텍스트 바꾸기 작업에 사용할 수 있습니다.

1. RegExp 생성자를 통해 정규식을 정의합니다. 첫 번째 매개변수는 문자열로 전달된 정규식이고, 두 번째 매개변수는 역시 문자열로 전달된 수정자입니다.

例:var caps = new RegExp("[A-Z]", "g");

2. 표현식 오른쪽에 슬래시 기호 "/"로 구분된 정규 표현식 리터럴을 직접 정의하고 바로 뒤에 수정자가 옵니다. (권장)

例:var caps = /[A-Z]/g;

자바스크립트 정규식에서 일반적으로 사용되는 문자

의 모든 문자와 일치합니다. [^exp]는 e를 제외한 모든 문자와 일치합니다. [A-Z]는 A-Z의 모든 문자와 일치하고, [0-9]는 0-9의 모든 숫자와 일치합니다. (exp)는 문자열 "exp"와 일치합니다(exp1exp2)exp+표현식 뒤에 + 문자를 사용하세요. 즉, 표현식 뒤에 + 문자를 사용하세요 한 번 또는 여러 번 일치합니다. s공백 문자(예: 공백, 탭, 캐리지 리턴)와 일치합니다.AsB는 A 공백 문자가 포함된 문자열과 일치합니다. BS공백 문자를 제외한 모든 문자와 일치합니다. ASB는 공백 문자가 아닌 A와 일치하고 모든 문자 B와 일치합니다. d은 0-9의 숫자와 일치합니다. 은 숫자를 제외한 모든 문자와 일치합니다. 우문자, 즉 단어, 숫자 또는 문자와 일치합니다.W문자를 제외한 모든 문자와 일치합니다.일반적으로 사용되는 표현식 및 수정자 외에도 정규식을 어떻게 사용해야 하는지 정의하려면 세 가지 가능한 값이 있으며 개별적으로 옵션으로 사용하거나 한 번에 여러 개 사용할 수 있습니다. Modifieri
Character Description Example
[exp] 대괄호([])로 묶인 문자 시퀀스 , 정규식 프로세서는 대괄호 안의 모든 문자 와 일치합니다. [exp]는 e,
일치(일치에 포함) .
파이프 문자를 사용하세요
exp+match exp
D



Description
g 첫 번째 일치 항목만 반환하는 대신 정규 표현식을 적용하여 비교 문자열에서 일치하는 모든 항목을 찾습니다.
대소문자를 무시하고 일치

m

javascript正则表达式常见用法

有三种string类型的方法可以使用正则表达式。match()查找出能匹配正则表达式的所有子字符并将结果以字符串数组的形式返回。replace()方法查找和前者相同的子字符并用传入该方法的另一个字符串进行替换。search()只是定位能匹配到正则表达式的第一个子字符串的位置,并以数字序号形式放回字符串在整个字符串中的位置。

    var regEx = /他妈的/g,
        string = "我去你他妈的";
    alert(string.match(regEx));         //他妈的
    alert(string.search(regEx));        //3
    alert(string.replace(regEx, "*"));  //我去你*

replace()特殊用法

可用作javascript字符串的replace()方法第二个参数的特殊字符

첫 번째 줄뿐만 아니라 여러 줄의 텍스트를 비교하고 일치시키는 표현식을 적용하세요
字符序列 含义 例子
$$ 把找到的字符串用一个单独的$字符代替 "Hello World".replace(/o/g, "\$\$");//"Hell\$ W\$rld"
$& 使用第一个参数中所给定的字符串来替换所找到的子字符串 "Hello World".replace(/o/g, "$&");//"Hello World"
$`(ESC下面那个`) 使用所找到的字符串之前的文本来替换该子字符串 "Hello World".replace(/o/g, "$`");//"HellHell WHello Wrld"
$' 使用所找到的字符串之后的文本来替换该子字符串 "Hello World".replace(/o/g, "$'");//"Hell World Wrldrld"
\$1, \$2 当第一个参数中包含的正则表达式使用小括号对进行表达式分组,则可以提取出特定的表达式所匹配的子字符串(\$1对应第一个小括号,\$2对应第二个小括号) "Hello World".replace(/(o)(r)/g, "\$1\$2\$1\$2");//"Hello Wororldd"(查找到or,然后替换成oror

还有一种就是replace() 的第二个参数可以用函数方式传入,然后用函数的返回值来替换原子字符串。

var count = 0;
function replaceWithCount() {
    count = count + 1;
    return count;   
}
alert("Hello World".replace(/o/g, replaceWithCount)); //Hell1 W2rld
alert("Hello World".replace(/\s/g, replaceWithCount)); //Hello3World

总结

这只是我写的作为笔记的正则表达式一些简单的判断和javascript用法。正则表达式还可以很复杂很强大,那就要再你要使用的时候再去挖掘思考了。如果想了解更多,可以学习Mozilla开发者网络上的关于javascript中使用正则表达式的指引介绍。写得更加详细。

위 내용은 자바스크립트 정규식 정의 및 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.