Javascript reguläres Escape

王林
Freigeben: 2023-05-09 09:57:37
Original
1374 Leute haben es durchsucht

In JavaScript sind reguläre Ausdrücke ein leistungsstarkes Werkzeug, das häufig zum Abgleichen und Durchsuchen von Text verwendet wird. In der tatsächlichen Entwicklung müssen wir jedoch möglicherweise einige Sonderzeichen in regulären Ausdrücken verwenden, z. B. Backslash, Metazeichen für reguläre Ausdrücke, Leerzeichen usw. Diese Zeichen haben in regulären Ausdrücken eine besondere Bedeutung und müssen maskiert werden, um den gewünschten Effekt zu erzielen. Daher ist es für uns notwendig, das Escape-Prinzip in regulären JavaScript-Ausdrücken zu verstehen.

  1. Escape-Zeichen

In JavaScript ist Backslash () ein Sonderzeichen, das wir Escape-Zeichen nennen. In regulären Ausdrücken können Escape-Zeichen verwendet werden, um Sonderzeichen in regulären Ausdrücken abzuschirmen, wodurch sie ihre besondere Bedeutung verlieren und zu gewöhnlichen Zeichen werden.

Für . in einem regulären Ausdruck kann es beispielsweise mit jedem Zeichen übereinstimmen. Wenn wir einen tatsächlichen Punkt (.) abgleichen müssen, müssen wir ihn mit einem Backslash maskieren:

let str = "my email is a.b@c.com"; let re = /a.b@c.com/; console.log(re.test(str)); // true
Nach dem Login kopieren
  1. Metazeichen

Reguläre Ausdrücke in JavaScript enthält einige Sonderzeichen, die wir Metazeichen nennen. Diese Metazeichen werden entsprechend ihrer festen Bedeutung abgeglichen. Beispielsweise entspricht d jedem numerischen Zeichen, w jedem alphabetischen oder numerischen Zeichen und s jedem Leerzeichen.

Wenn wir in regulären Ausdrücken ein bestimmtes Metazeichen finden möchten, müssen wir es maskieren. Wenn Sie beispielsweise eine Übereinstimmung mit dem tatsächlichen Zeichen „$“ benötigen, müssen Sie davor einen Backslash einfügen, um es zu maskieren und in „$“ umzuwandeln.的 Im Folgenden sind einige häufig verwendete Yuan-Zeichen und ihre rechtschaffenen Zeichen aufgeführt:

Zeichen bedeutet Zeichen nach Gerechtigkeit . ?? ?? Entspricht jedem numerischen Zeichen entspricht jedem Leerzeichen entspricht jedem alphabetischen oder numerischen Zeichen
$ passt zum Ende des string $
* null oder mehrmals mit dem vorherigen Zeichen übereinstimmen *
+ ein- oder mehrmals mit dem vorherigen Zeichen übereinstimmen. +
? mit dem vorherigen übereinstimmen Zeichen null oder einmal ?
{ n } stimmt genau n-mal mit dem vorherigen Zeichen überein { n}
{ n, } stimmt mindestens n-mal mit dem vorherigen Zeichen überein { n,}
{ n, m } Ordnet das vorherige Zeichen n- bis m-mal zu { n,m}
[ ] Ordnet ein beliebiges Zeichen in den eckigen Klammern zu [ ]
d s
s w
w

下面是一些常见元字符的使用示例:

let str = "277-9981"; let re1 = /d{3}-d{4}/; // 匹配xxx-xxxx格式的电话号码 let re2 = /[()]|d/g; // 匹配括号和数字 console.log(re1.test(str)); // true console.log(str.match(re2)); // ['2', '7', '7', '9', '9', '8', '1']
Nach dem Login kopieren

在正则表达式中,元字符的使用需要非常小心,因为它们的含义可能因为上下文的变化而发生改变。

  1. JavaScript内置的正则表达式对象

除了以上介绍的方式,JavaScript内置的RegExp对象也提供了一些字符串转义的方法。具体而言,RegExp对象提供了两个方法:RegExp.escape()和RegExp()构造函数中的转义。

RegExp.escape()方法可以将字符串中的元字符进行转义,使其失去特殊含义,变成普通字符。例如下面的代码:

let str = "I love music."; let re = new RegExp(RegExp.escape("love music.")); console.log(re.test(str)); // true
Nach dem Login kopieren

另外,使用RegExp()构造函数时,可以直接使用转义后的字符来匹配正则表达式。例如下面的代码:

let str = "Hello world!"; let re = new RegExp("\bHello\b"); console.log(re.test(str)); // true
Nach dem Login kopieren

需要注意的是,在使用RegExp.escape()方法时,我们需要确保该方法已定义。在ECMAScript6之前,该方法并未被正式纳入规范,因此在一些浏览器中可能无法使用。在这种情况下,我们可以模拟该方法:

RegExp.escape = function(str) { return str.replace(/[\^$*+?.()|[]{}]/g, '\$&'); }
Nach dem Login kopieren

总结

本文介绍了在JavaScript中使用正则表达式时需要注意的转义问题。首先,我们了解了反斜杠在正则表达式中的转义作用,它可以将一些特殊字符转义为普通字符。其次,我们介绍了一些常见的正则表达式元字符以及它们的转义方式。最后,我们学习了JavaScript内置的正则表达式对象中提供的转义方法。掌握这些转义技巧,可以帮助我们正确地使用正则表达式,特别是在处理一些特殊字符的时候。

Das obige ist der detaillierte Inhalt vonJavascript reguläres Escape. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!