编写包括中文字、英文字母、数字、连接号和下划线的正则表达式中的疑问

/^[\w|-]*$/和/^(\w*)|(-*)]*$/有什么区别??/^(\w*)|(-*)]*$/还可以输入其它字符,为什么???或|什么含义??... /^[\w|-]*$/ 和 /^(\w*)|(-*)]*$/ 有什么区别??
/^(\w*)|(-*)]*$/ 还可以输入其它字符,为什么???
或 | 什么含义??
展开
 我来答
百度网友98422ad
2010-10-10 · TA获得超过339个赞
知道小有建树答主
回答量:175
采纳率:0%
帮助的人:297万
展开全部
这里有两个问题需要先搞清楚,

首先,用\w实现汉字的匹配是受你的操作系统和语言环境影响的,
大部分语言环境下\w相当于[A-Za-z0-9_],
也就是仅匹配任意一个字母或数字或下划线。

其次,“[]”括起来的形式在正则中表示字符集合,字符集中只有4个 字符具有特殊含义:“]”代表字符集定义的结束;“\”代表转义;“^”代表取反;“-”代表范围定义。
在中括号中使用特殊字符时要转义,其他都是普通字符,不用转义。所以如果你的本意是匹配若干\w或若干-,写成[\w\-]*就可以了。

至于/^(\w*)|(-*)]*$/我猜你是想问/^[(\w*)|(-*)]*$/,这个同样错在没搞明白“[]”中的特殊字符。这样写的意义就成了匹配任意字母或数字或下划线、小括号、“|”以及“(”到“*”间所有字符。

“|”的含义,“|”在“[]”外时表示或,在“[]”里时表示这个字符本身。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式