编写包括中文字、英文字母、数字、连接号和下划线的正则表达式中的疑问
/^[\w|-]*$/和/^(\w*)|(-*)]*$/有什么区别??/^(\w*)|(-*)]*$/还可以输入其它字符,为什么???或|什么含义??...
/^[\w|-]*$/ 和 /^(\w*)|(-*)]*$/ 有什么区别??
/^(\w*)|(-*)]*$/ 还可以输入其它字符,为什么???
或 | 什么含义?? 展开
/^(\w*)|(-*)]*$/ 还可以输入其它字符,为什么???
或 | 什么含义?? 展开
1个回答
展开全部
这里有两个问题需要先搞清楚,
首先,用\w实现汉字的匹配是受你的操作系统和语言环境影响的,
大部分语言环境下\w相当于[A-Za-z0-9_],
也就是仅匹配任意一个字母或数字或下划线。
其次,“[]”括起来的形式在正则中表示字符集合,字符集中只有4个 字符具有特殊含义:“]”代表字符集定义的结束;“\”代表转义;“^”代表取反;“-”代表范围定义。
在中括号中使用特殊字符时要转义,其他都是普通字符,不用转义。所以如果你的本意是匹配若干\w或若干-,写成[\w\-]*就可以了。
至于/^(\w*)|(-*)]*$/我猜你是想问/^[(\w*)|(-*)]*$/,这个同样错在没搞明白“[]”中的特殊字符。这样写的意义就成了匹配任意字母或数字或下划线、小括号、“|”以及“(”到“*”间所有字符。
“|”的含义,“|”在“[]”外时表示或,在“[]”里时表示这个字符本身。
首先,用\w实现汉字的匹配是受你的操作系统和语言环境影响的,
大部分语言环境下\w相当于[A-Za-z0-9_],
也就是仅匹配任意一个字母或数字或下划线。
其次,“[]”括起来的形式在正则中表示字符集合,字符集中只有4个 字符具有特殊含义:“]”代表字符集定义的结束;“\”代表转义;“^”代表取反;“-”代表范围定义。
在中括号中使用特殊字符时要转义,其他都是普通字符,不用转义。所以如果你的本意是匹配若干\w或若干-,写成[\w\-]*就可以了。
至于/^(\w*)|(-*)]*$/我猜你是想问/^[(\w*)|(-*)]*$/,这个同样错在没搞明白“[]”中的特殊字符。这样写的意义就成了匹配任意字母或数字或下划线、小括号、“|”以及“(”到“*”间所有字符。
“|”的含义,“|”在“[]”外时表示或,在“[]”里时表示这个字符本身。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询