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.
例:var caps = new RegExp("[A-Z]", "g");
例:var caps = /[A-Z]/g;
Caractère | Description | Exemple | |||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
[exp] | Pour les séquences de caractères entourées de crochets ([]), le processeur d'expression réguliè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
|
[^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 |
有三种string类型的方法可以使用正则表达式。match()查找出能匹配正则表达式的所有子字符并将结果以字符串数组的形式返回。replace()方法查找和前者相同的子字符并用传入该方法的另一个字符串进行替换。search()只是定位能匹配到正则表达式的第一个子字符串的位置,并以数字序号形式放回字符串在整个字符串中的位置。
var regEx = /他妈的/g, string = "我去你他妈的"; alert(string.match(regEx)); //他妈的 alert(string.search(regEx)); //3 alert(string.replace(regEx, "*")); //我去你*
可用作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!