Maison  >  Article  >  interface Web  >  Étapes de mise en œuvre des expressions régulières

Étapes de mise en œuvre des expressions régulières

php中世界最好的语言
php中世界最好的语言original
2017-12-02 11:08:061864parcourir

Cette fois, je vais vous présenter la syntaxe de l'expression régulière. L'expression régulière est un modèle de texte, comprenant des caractères ordinaires et des caractères spéciaux. texte. Pour faire correspondre une ou plusieurs chaînes.

1. Syntaxe de base des expressions régulières

Deux symboles spéciaux '^' et '$'. Leur fonction est d'indiquer respectivement le début et la fin d'une chaîne. Les exemples sont les suivants :

"^The" : représente toutes les chaînes commençant par "The" ("Là", "Le chat", etc.) ;
"of despair$" : représente toutes les chaînes ; commençant par "of" Une chaîne se terminant par désespoir";
"^abc$": indique une chaîne qui commence et se termine par "abc" - haha, seulement "abc" lui-même;
"notice": indique n'importe quel chaîne contenant la chaîne « avis ».

Comme le dernier exemple, si vous n'utilisez pas deux caractères spéciaux, vous indiquez que la chaîne que vous souhaitez trouver fait partie de la chaîne recherchée - vous ne la
la positionnez en haut d'un certain.

D'autres symboles incluent « * », « + » et « ? », qui représentent le nombre de fois qu'un caractère ou une séquence de caractères apparaît de manière répétée. Ils signifient respectivement « aucun ou
plus », « une ou plusieurs » et « aucun ou une fois ». Voici quelques exemples :

"ab*" : Indique qu'une chaîne a un a suivi de zéro ou de plusieurs b. ("a", "ab", "abbb",...);
"ab+" : indique qu'une chaîne a un a suivi d'au moins un b ou plus
"ab?" : indique ; a La chaîne a un a suivi de zéro ou un b ;
"a?b+$" : signifie qu'il y a zéro ou un a suivi d'un ou plusieurs b à la fin de la chaîne.

Vous pouvez également utiliser des plages, entre accolades, pour indiquer la plage de répétitions.

"ab{2}" : indique qu'une chaîne a un a suivi de 2 b ("abb");
"ab{2,}" : indique qu'une chaîne a un a suivi de au moins 2 b;
"ab{3,5}" : Indique qu'une chaîne a un a suivi de 3 à 5 b.

Veuillez noter que vous devez spécifier la limite inférieure de la plage (par exemple "{0,2}" au lieu de "{,2}"). De plus, vous avez peut-être remarqué que '*', '+' et
' ?' ​​sont équivalents à "{0,}", "{1,}" et "{0,1}".
Il y a aussi un '¦', qui signifie opération "ou" :

"salut¦hello" : signifie qu'il y a "salut" ou "hello" dans une chaîne
"(b; ¦cd )ef": représente "bef" ou "cdef";
"(a¦b)*c": représente une chaîne de chaînes mixtes "a" et "b" suivie d'un "c";

'.' peut remplacer n'importe quel caractère :

"a.[0-9]" : Indique qu'une chaîne a un "a" suivi d'un caractère arbitraire et d'un nombre
" ^. {3}$" : Représente une chaîne de trois caractères quelconques (la longueur est de 3 caractères) ;

Les crochets indiquent que certains caractères sont autorisés à apparaître à une position spécifique dans une chaîne :

"[ab]":表示一个字符串有一个"a"或"b"(相当于"a¦b");"[a-d]":表示一个字符串包含小写的'a'到'd'中的一个(相当于"a¦b¦c¦d"或者"[abcd]");"^[a-zA-Z]":表示一个以字母开头的字符串;"[0-9]%":表示一个百分号前有一位的数字;",[a-zA-Z0-9]$":表示一个字符串以一个逗号后面跟着一个字母或数字结束。

Vous pouvez également utiliser « ^ » entre crochets pour indiquer que les caractères indésirables « ^ » doivent être le premier entre crochets. (Par exemple : "%[^a-zA-Z]%" signifie
indiquant que les lettres ne doivent pas apparaître entre les deux signes pour cent).

Afin de l'exprimer textuellement, vous devez ajouter le caractère d'échappement '' avant ces caractères "^.$()¦*+?{".

Veuillez noter qu'entre crochets, aucun caractère d'échappement n'est requis.

2. Saisie de la zone de texte de contrôle de vérification des expressions régulières Type de caractère

1.只能输入数字和英文的:
<input onkeyup="value=value.replace(/[\W]/g,&#39;&#39;) " onbeforepaste="clipboardData.setData(&#39;text&#39;,clipboardData.getData(&#39;text&#39;).replace(/[^\d]/g,&#39;&#39;))" ID="Text1" NAME="Text1">
2.只能输入数字的:
<input onkeyup="value=value.replace(/[^\d]/g,&#39;&#39;) " onbeforepaste="clipboardData.setData(&#39;text&#39;,clipboardData.getData(&#39;text&#39;).replace(/[^\d]/g,&#39;&#39;))" ID="Text2" NAME="Text2">
3.只能输入全角的:
<input onkeyup="value=value.replace(/[^\uFF00-\uFFFF]/g,&#39;&#39;)" onbeforepaste="clipboardData.setData(&#39;text&#39;,clipboardData.getData(&#39;text&#39;).replace(/[^\uFF00-\uFFFF]/g,&#39;&#39;))" ID="Text3" NAME="Text3">
4.只能输入汉字的:
<input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,&#39;&#39;)" onbeforepaste="clipboardData.setData(&#39;text&#39;,clipboardData.getData(&#39;text&#39;).replace(/[^\u4E00-\u9FA5]/g,&#39;&#39;))" ID="Text4" NAME="Text4">

3. Explication populaire des exemples d'application d'expressions régulières

*************************************************** *** ********************************

//校验是否全由数字组成
/^[0-9]{1,20}$/
^ 表示打头的字符要匹配紧跟^后面的规则
$ 表示打头的字符要匹配紧靠$前面的规则
[ ] 中的内容是可选字符集
[0-9] 表示要求字符范围在0-9之间
{1,20}表示数字字符串长度合法为1到20,即为[0-9]中的字符出现次数的范围是1到20次。/^ 和 $/成对使用应该是表示要求整个字符串完全匹配定义的规则,而不是只匹配字符串中的一个子串。
//校验登录名:只能输入5-20个以字母开头、可带数字、“_”、“.”的字串
/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/
^[a-zA-Z]{1} 表示第一个字符要求是字母。
([a-zA-Z0-9]|[._]){4,19} 表示从第二位开始(因为它紧跟在上个表达式后面)的一个长度为4到9位的字符串,它要求是由大小写字母、数字或者特殊字符集[._]组成。
** **** ********************************************** ***** **************************


//校验用户姓名:只能输入1-30个以字母开头的字串
/^[a-zA-Z]{1,30}$/
****** ************ ************************************* ************* *******************

//校验密码:只能输入6-20个字母、数字、下划线
/^(\w){6,20}$/
\w:用于匹配字母,数字或下划线字符
************ ******************* ******************************* ********************* **

//校验普通电话、传真号码:可以“+”或数字开头,可含有“-” 和 “ ”
/^[+]{0,1}(\d){1,3}[ ]?([-]?((\d)|[ ]){1,12})+$/
\d:用于匹配从0到9的数字;
“?”元字符规定其前导对象必须在目标对象中连续出现零次或一次
可以匹配的字符串如:+123 -999 999 ; +123-999 999 ;123 999 999 ;+123 999999等
****************** *********************** ************************** **************

//校验URL
/^http[s]{0,1}:\/\/.+$/ 或 /^http[s]{0,1}:\/\/.{1,n}$/ (表示url串的长度为length(“https://”) + n )
\ / :表示字符“/”。
. 表示所有字符的集
+ 等同于{1,},就是1到正无穷吧。
* ************************* *************************** ********************** *****

//校验纯中文字符
/^[\u4E00-\u9FA5]+$/
[\u4E00-\u9FA5] :估计是中文字符集的范围吧
以上表达式均在下面的javascript中测试通过
<html>
<script language="JavaScript">
<!--
function regx(r,s)
{
    if (r == null || r == ""){
       return false;
    }
    var patrn= new RegExp(r);
    if (patrn.exec(s))
       return true
    return false
}
-->
</script>
<body>
<form>
    规则表达式 : <input type="input" name="regxStr" value="" > (填写/ /之间的表达式)
<br>
    校验字符串 : <input type="input" name="str" value="" >
    <input type="button" name="match" value="匹配" onClick="alert(regx(regxStr.value,str.value));">
</form>
</body>
</html>
 


Je pense que vous maîtrisez les méthodes après avoir lu ces cas. Pour des informations plus intéressantes, veuillez prêter attention à. d'autres articles connexes sur le site php chinois !

Lecture connexe :

Étapes de mise en œuvre pour l'exploitation des cookies HTTP à l'aide de Js

À propos du stockage de stockage Web local Introduction détaillée

Comment définir la couleur de la police du texte CSS

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