原文:http://www.javascriptkit.com/javatutors/re.shtml

校验用户的输入是每一个软件开发者的必须要做的事情。

正则表达式与模式

如何在JavaScript中使用正则表达式呢?这里有两种方式:

1)字面量语法。

2)当你需要动态构建正则表达式时,可以通过RegExp()构造函数。

字面量语法如下:

var RegularExpression = /pattern/;

RegExp()构造函数方法如下:

var RegularExpression = new RegExp("pattern");

RegExp()方法允许你通过一个字符串来动态构造一个搜索模式,这是一个非常有用的方法,特别是在实现无法知道模式是什么的情况下。

[原句:The RegExp() method allows you to dynamically construct the search pattern as a string, and is useful when the pattern is not known ahead of time.]

使用正则表达式来校验一个字符串,那么你必须要定义一个模式字符串来作为搜索的条件,然后使用一个相关字符串方法来表示动作(ie: search, replace etc)。

模式是通过使用字符串原义字符(string literal characters)和元字符(metacharacters)来定义。

举个例子,下面的正则表达式是判断一个包含有效的5位美国邮政编码字符串。

<script type="text/javasript">

function checkpostal(){

  var re5digit = /^\d{5}$/; //regular expression defining a 5 digit number
  //注意原文该处的实例代码有错误,原文是赋值,正确的如下
  if(document.myform.myinput.value.search(re5digit) === -1){ // if match failed     alert("Please enter a valid 5 digit number inside form.");   } } </script> <form name="myform"> <input type="text" name="myinput" size="15" /> <input type="button" onClick="checkpostal()" value="check" /> </form>

解析一下上面所使用的正则表达式,它是用来检查一个包含5位有效数字的字符串,并且只能是一个5位数字。

var reg5digit = /^\d{5}$/;

  • ^表示字符串的开头,使用^元字符要求匹配是从开头开始匹配的
  • \d表示一个数字字符,跟在后面的{5}意思是必须5位连续的数字字符
  • $表示的是字符串的结尾,使用$元字符要求匹配在这个字符串后结束

Translated to English, this pattern states: "Starting at the beginning of the string there must be nothing other than 5 digits. There must also be nothing following those 5 digits."

用英文来翻译,这个模式声明:“该字符串的开头除了5位数字之外,不能是其他的字符,同时该5位数子后面不能有任何的字符”。

http://www.javascriptkit.com/javatutors/re2.shtml

[label][翻译][JavaScript Regular Expression]JavaScript Regular Expressions的更多相关文章

  1. JavaScript Patterns 3.6 Regular Expression Literal

    1. Using the new RegExp() constructor // constructor var re = new RegExp("\\\\", "gm& ...

  2. Regular Expression Syntax

    python的正则表达式 正则表达式的概念 正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符.及这些特定字符的组合,组成一个"规则字符串",这个"规 ...

  3. [转]The Regular Expression Object Model

    本文转自:https://docs.microsoft.com/en-us/dotnet/standard/base-types/the-regular-expression-object-model ...

  4. (六)JavaScript之[Regular Expression]与[错误(try, catch, throw)]

    10].正则表达式 /** * 正则表达式(Regular Expression): * * 用于文本搜索和文本替换 * */ /** * /good/i是一个正则表达式. * good是一个模式(用 ...

  5. Regular Expression 範例

    Regular expression 被實作於各種語言中,可以用來對字串做 比對 擷取 分隔 這幾類的處理.以下是 JavaScript的處理範例. 各位看官,可以按F12開啟 brower 的 de ...

  6. js regular expression & email checker

    js regular expression & email checker const isValidEmail = (email = ``) => /^([\w+\.])+@(\w+) ...

  7. Regular Expression(正则表达式)之邮箱验证

    正则表达式(regular expression, 常常缩写为RegExp) 是一种用特殊符号编写的模式,描述一个或多个文本字符串.使用正则表达式匹配文本的模式,这样脚本就可以轻松的识别和操作文本.其 ...

  8. Invalid regular expression: unmatched parentheses

    Unmatched ) in Javascript regular expression您的某些字符串包含错误')'.你需要逃避这个.这是这样做的功能: function escapeRegExp(s ...

  9. java 正则表达式 -Regular Expression

    正则表达式(Regular Expression),可以说就是一个字符构成的串,它定义了一个用来搜索匹配字符串的模式.正则表达式定义了字符串的模式,可以用来搜索.编辑或处理文本,不仅限于某一种语言(P ...

随机推荐

  1. win10关闭后台应用程序进程的方法

    一)win10系统后台应用有两大特点: 1.win10系统有许多系统自带应用软件,在系统任务栏中看不到任何自带的应用程序运行 2.但通过任务管理器的进程中,可直观的看到许多非系统进程正在运行. 二)后 ...

  2. mybatis动态sql trim

    trim标记是一个格式化的标记,可以完成set或者是where标记的功能,如下代码: 1. select * from user <trim prefix="WHERE" p ...

  3. android笔记:ListView及ArrayAdapter

    ListView用于展示大量数据,而数据无法直接传递给ListView,需要借助适配器adapter来完成. ArrayAdapter是最常用的adapter,可以通过泛型来指定要适配的数据类型.常见 ...

  4. mybatis什么时候需要声明jdbcType?

    经常会见到以下两种写法:1. #{bookId}2. #{bookId,jdbcType=INTEGER}一般情况下,两种写法都可以.它们都可以获取Dao层传递过来的参数.但是,当传入的参数为null ...

  5. nyoj1076-方案数量 【排列组合 dp】

    http://acm.nyist.net/JudgeOnline/problem.php?pid=1076 方案数量 时间限制:1000 ms  |  内存限制:65535 KB 难度:2   描述 ...

  6. Super Star(最小球覆盖)

    Super Star http://poj.org/problem?id=2069 Time Limit: 1000MS   Memory Limit: 65536K Total Submission ...

  7. ASP.NET使用ListView数据绑定控件和DataPager实现数据分页显示(一)

    为什么使用ListView+DataPager的方式实现分页显示? .net提供的诸多数据绑定控件,每一种都有它自己的优点和缺点.如果需要对数据进行操作,如果数据量不大的情况下,DataList和Gr ...

  8. cookies,sessionStorage 和 localStorage 的区别

    请描述一下 cookies,sessionStorage 和 localStorage 的区别? sessionStorage 和 localStorage 是HTML5 Web Storage AP ...

  9. Underscore模版引擎的使用-template方法

    之前项目里有遇到在DOM中增加大量的html结构的时候,傻乎乎的在js中写一堆模版,然后用replace一个一个做替换.当时就是难看了点,不觉得啥,现在了解了模版引擎之后回头来看真的比较捉急了,以后是 ...

  10. laravel的foreach

    1.控制器 2.模板