Maison  >  Article  >  interface Web  >  Définition et introduction des expressions régulières javascript

Définition et introduction des expressions régulières javascript

零下一度
零下一度original
2017-07-18 16:01:441653parcourir

Expression régulière JavaScript

Expression régulière (anglais : expression régulière, souvent abrégée en regex, regexp ou RE dans le code) utilise une seule chaîne pour décrire et faire correspondre une série de correspondances A modèle de recherche de chaîne pour une certaine règle de syntaxe.

Le mode de recherche peut être utilisé pour la recherche de texte et le remplacement de texte.

Qu'est-ce qu'une expression régulière ?

Une expression régulière est un modèle de recherche formé par une séquence de caractères.

Lorsque vous recherchez des données dans du texte, vous pouvez utiliser des modèles de recherche pour décrire ce que vous souhaitez interroger.

Une expression régulière peut être un caractère simple ou un motif plus complexe.

Les expressions régulières peuvent être utilisées pour toutes les opérations de recherche de texte et de remplacement de texte.

1. Définissez une expression régulière via le constructeur RegExp. Le premier paramètre est l’expression régulière transmise sous forme de chaîne et le deuxième paramètre est le modificateur également transmis sous forme de chaîne.

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

2. Définissez directement un littéral d'expression régulière, séparé par une barre oblique "/" sur le côté droit de l'expression, suivi directement du modificateur. (Ceci est recommandé)

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

Caractères couramment utilisés dans les expressions régulières javascript

(exp)
Caractère Description Exemple
[exp] Pour les séquences de caractères entourées de crochets ([]), le processeur d'expression régulière
字符 描述 例子
[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 匹配除了文字字符意外的任意一个字符
correspondra à n'importe quel caractère

entre parenthèses.

[exp] Correspond à n'importe quel caractère de e, x, p
[^ exp] Ajoutez le caractère ^ devant les crochets pour faire correspondre avec n'importe quel symbole en dehors des crochets, à l'exception de la signification
修饰符 描述
g 应用正则表达式在比较字符串中找出所有匹配的项,而不是只返回第一个匹配项
i 应用表达式进行比较匹配的同时,忽略大小写
m 应用表达式对多行的文本进行比较匹配,而不只是比较第一行
.
[^exp] correspond à n'importe quel caractère sauf e, x, p
[ exp1-exp2] Utilisez - le trait d'union pour faire correspondre n'importe quel caractère dans la séquence de caractères de exp1 à exp2. [A-Z] correspond à n'importe quel caractère de A à Z ; [0-9] correspond à n'importe quel nombre de 0 à 9
Pour la séquence de caractères entourée de parenthèses, l'expression régulière correspondra exactement à la séquence de caractères (elle correspondra si elle est inclus) . (exp) correspond à la chaîne "exp"
(exp1 td > exp2) Utiliser des caractères pipe
exp+ Utilisez le caractère + après l'expression pour faire correspondre uniquement lorsque l'expression est incluse une ou plusieurs fois. exp+match exp
s Faire correspondre les caractères d'espacement, c'est-à-dire les espaces, les tabulations et les retours chariot AsB correspond à la chaîne contenant un caractère d'espacement B
S Faire correspondre n'importe quel caractère à l'exception des caractères d'espacement ASB correspond à A N'importe quel caractère qui est pas d'espace B
d correspond à un nombre de 0 à 9
D Correspond à n'importe quel caractère à l'exception des chiffres
w Correspond à un caractère de texte, c'est-à-dire un mot, un chiffre ou une lettre
W Correspond à n'importe quel caractère à l'exception des caractères de texte
En plus des expressions couramment utilisées, il existe également des modificateurs, qui sont utilisés pour définir la manière dont les expressions régulières doivent être utilisées. Il existe trois valeurs possibles qui peuvent être utilisées. individuellement en option, ou en multiples à la fois.

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn