var expression = /pattern(模式)/flags(标识符);
代码如下:
//匹配字符串中所有“at”的实例 var e = /at/g; //匹配第一个“bat”或“cat”,不区分大小写 var e = /[bc]at/i;
RegExp构造函数接收两个参数,第一个参数是要匹配的字符串模式,第二个是可选的标识符字符串。 代码如下:
//匹配第一个“bat”或“cat”,不区分大小写 var e = new RegExp("[bc]at","i");
两种创建方式的比较:
在ECMAScript3中,字面量创建和RegExp对象创建区别是:字面量创建始终会共享同一个RegExp实例,而构造函数创建的每一个RegExp实例都是一个新实例 ECMAScript5明确规定:使用正则表达式字面量必须像直接调用RegExp构造函数一样,每次都创建新的RegExp实例。IE9+、Firefox 4+和Chrome都做出了修改。
需要注意的是,正则表达式中的元字符必须转义。元字符有:
( [ { \ ^ $ | ) ? * + . ] }
例如:
//匹配第一个“[bc]at”,不区分大小写 var e = /\[bc\]at/i; //在RegExp构造函数创建时,元字符需要双重on转义 var e = new RegExp("\\[bc\\]at","i");
exec()方法为模式的捕获组而设计的,该方法接收一个参数,即要匹配的字符串,该方法返回一个包含捕获组的数组Array,如果没有捕获组匹配返回null。返回的数组Array中,第一项是与整个模式匹配的字符串,其他项是与模式中的捕获组匹配到的字符串。数组Array中还有两个参数input(返回要匹配的字符串),index(返回匹配项在字符串中的位置) 模式中的捕获组就是指圆括号中的字符串。
例如:
var e = /do(es)(d)?/; e.exec("ssdoesdo"); /** array[0]:"doesd", array[1]:"es", array[2]:"d", index:2, input:"ssdoesdo" **/
例子中,模式中包含两个捕获组”es”、”d”,即圆括号中的字符串。
test()方法检索字符串中指定的值,该方法接收一个参数,如果字符串中含有与模式匹配的文本则返回true,否则返回false。
例如:
var e = /do(es)?/; e.test("doesdo"); //true
如果正则表达式中带有g标识符,则每一次调用test方法和exec方法都从上一次匹配结束位置开始匹配;如果正则表达式中没有g标识符,则每次调用方法都从字符串起始位置开始匹配。
例如:
var e = /do(es)?/g; e.exec("ssdoesdoesdoes"); /* array[0]:"does", array[1]:"es", index:2, input:"ssdoesdoesdoes" */ e.exec("ssdoesdoesdoes"); /* array[0]:"does", array[1]:"es", index:6, input:"ssdoesdoesdoes" */
var e = /do(es)?/g; console.log(e.test("ssdoesdoesdoes")); console.log(e.lastIndex); //true //6 console.log(e.test("ssdoesdoesdoes")); console.log(e.lastIndex); //true //10 console.log(e.test("ssdoesdoesdoes")); console.log(e.lastIndex); //true //14
var e = /do(es)?/; console.log(e.test("ssdoesdoesdoes")); console.log(e.lastIndex); //true //0 console.log(e.test("ssdoesdoesdoes")); console.log(e.lastIndex); //true //0
/^1[34578]\d{9}$/
/^[0-9]\d*$/
/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/
/^(\w-*\.*)+@(\w-?)+(\.\w{2,})+$/
/^(\d{14}|\d{17})(\d|[xX])$/
el-input中不允许输入特殊字符
const handleInput = (data: any) => { data.name = data.name.replace( /[-~#()|【-】· (){}+=*^&%$@!.,,。<>;::;‘'“”、'"?`\\/\\]/g, '', ); };
到此这篇关于VUE正则表达式的文章就介绍到这了,更多相关VUE正则表达式内容请搜索插件窝以前的文章或继续浏览下面的相关文章希望大家以后多多支持插件窝!