Heim  >  Artikel  >  Web-Frontend  >  Definition und Einführung von regulären Javascript-Ausdrücken

Definition und Einführung von regulären Javascript-Ausdrücken

零下一度
零下一度Original
2017-07-18 16:01:441670Durchsuche

JavaScript Regulärer Ausdruck

Regulärer Ausdruck (Englisch: Regulärer Ausdruck, im Code oft als Regex, Regexp oder RE abgekürzt) verwendet eine einzelne Zeichenfolge, um eine Reihe von Übereinstimmungen zu beschreiben und abzugleichen A String-Suchmuster für eine bestimmte Syntaxregel.

Der Suchmodus kann für die Textsuche und Textersetzung verwendet werden.

Was ist ein regulärer Ausdruck?

Ein regulärer Ausdruck ist ein Suchmuster, das aus einer Folge von Zeichen besteht.

Wenn Sie im Text nach Daten suchen, können Sie Suchmuster verwenden, um zu beschreiben, was Sie abfragen möchten.

Ein regulärer Ausdruck kann ein einfaches Zeichen oder ein komplexeres Muster sein.

Reguläre Ausdrücke können für alle Textsuch- und Textersetzungsvorgänge verwendet werden.

1. Definieren Sie einen regulären Ausdruck über den RegExp-Konstruktor. Der erste Parameter ist der reguläre Ausdruck, der als String übergeben wird, und der zweite Parameter ist der Modifikator, der ebenfalls als String übergeben wird.

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

2. Definieren Sie direkt ein reguläres Ausdrucksliteral, getrennt durch einen Schrägstrich „/“ auf der rechten Seite des Ausdrucks, direkt gefolgt vom Modifikator. (Dies wird empfohlen)

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

Zeichen, die häufig in regulären Javascript-Ausdrücken verwendet werden

(exp)
Charakter Beschreibung Beispiel
[exp] Für in eckige Klammern ([]) eingeschlossene Zeichenfolgen
字符 描述 例子
[exp] 对于中括号([])包裹的字符序列,正则表达式处理程序会匹配中括号内的任意一个字符 [exp]匹配e,x,p中的任意一个字符
[^exp] 在中括号内前方加上^字符,将匹配中括号外的任意一个符号,除去的意思 [^exp]匹配e、x、p之外的任意一个字符
[exp1-exp2] 使用-连字符表示匹配exp1字符到exp2字符序列中的任意一个字符 [A-Z]匹配A-Z任意一个字符;[0-9]匹配0-9任意一个数字
(exp) 对于小括号包裹的字符序列,正则表达式会以该字符次序确切进行匹配(包含就能匹配) (exp)匹配"exp"这个字符串
(exp1 exp2) 使用管道字符
exp+ 表达式后使用+字符,表示只有当该表达式被包含一次或者多次时匹配 exp+匹配exp
s 匹配空白字符,即空格,tab制表符,回车符 AsB匹配字符串中含A空白符B
S 匹配除了空白字符意外的任意一个字符 ASB匹配A不是空白符任意字符B
d 匹配从0-9的一个数字
D 匹配除了数字以为的任意一个字符
w 匹配一个文字字符,即一个字,数字或字母
W 匹配除了文字字符意外的任意一个字符
stimmt der Prozessor für reguläre Ausdrücke mit jedem Zeichen in Klammern.
[exp] Entspricht jedem Zeichen in e, x, p
[^ exp] Fügen Sie das ^-Zeichen vor den eckigen Klammern hinzu, um

mit jedem Symbol außerhalb der eckigen Klammern abzugleichen, mit Ausnahme der Bedeutung

.
[^exp] entspricht jedem Zeichen außer e, x, p
[ exp1-exp2] Verwenden Sie den Bindestrich, um ein beliebiges Zeichen
修饰符 描述
g 应用正则表达式在比较字符串中找出所有匹配的项,而不是只返回第一个匹配项
i 应用表达式进行比较匹配的同时,忽略大小写
m 应用表达式对多行的文本进行比较匹配,而不只是比较第一行
in der Zeichenfolge von exp1 bis exp2 zu finden.
[A-Z] entspricht einem beliebigen Zeichen von A-Z; [0-9] entspricht einer beliebigen Zahl von 0-9
Für die in Klammern eingeschlossene Zeichenfolge stimmt der reguläre Ausdruck genau mit der Zeichenfolge überein (er stimmt überein, wenn dies der Fall ist). enthalten) . (exp) entspricht der Zeichenfolge „exp“
(exp1 td > exp2) Verwenden Sie Pipe-Zeichen
exp+ Verwenden Sie das +-Zeichen nach dem Ausdruck, um nur dann zu finden, wenn der Ausdruck einmal oder mehrmals enthalten ist. exp+match exp
s Übereinstimmung mit Leerzeichen, also Leerzeichen, Tabulatoren und Wagenrückläufen AsB entspricht der Zeichenfolge, die ein Leerzeichen B enthält
S Entspricht einem beliebigen Zeichen außer Leerzeichen. ASB entspricht einem beliebigen Zeichen kein Leerzeichen B
d entspricht einer Zahl von 0-9
D Entspricht jedem Zeichen außer Zahlen
w Entspricht einem Textzeichen, also einem Wort, einer Zahl oder einem Buchstaben
W Entspricht jedem Zeichen außer Textzeichen
Zusätzlich zu häufig verwendeten Ausdrücken gibt es auch Modifikatoren, mit denen definiert wird, wie reguläre Ausdrücke verwendet werden sollen. Es gibt drei mögliche Werte, die verwendet werden können einzeln als Optionen oder in mehreren auf einmal.

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中使用正则表达式的指引介绍。写得更加详细。

Das obige ist der detaillierte Inhalt vonDefinition und Einführung von regulären Javascript-Ausdrücken. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn