求一正则表达式写法

kouyu 2013-03-25 05:05:25
要匹配出满足如下条件的字符,正则表达式该怎么写?
1 只能输入阿拉伯数字(0-9),英文字母(a-z),以及三种标点符号-_.
2 字符开头和结尾不能是.这个符号
3 在字符中间的.号不能连续两次以上出现,但可以间隔多次出现
比如 te....st 是NG的
t.e.s.t 是OK的

我现在写的正则表达式如下:
/^[^.][0-9a-z-_.]*$/
第二个和第三个条件不知道如何实现,求各位大仙帮助。
小弟还会继续努力学习正则表达。



...全文
133 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
oxfed 2013-03-26
  • 打赏
  • 举报
回复
引用 2 楼 zyzy15 的回复:
哦不对,这样写开头结尾有可能是汉字啥的了…… 应该 /^[0-9a-z-_][0-9a-z-_.]*[0-9a-z-_]$/
这样写无法匹配一个字符的情况,例如"t"
oxfed 2013-03-25
  • 打赏
  • 举报
回复
记得给分哦
oxfed 2013-03-25
  • 打赏
  • 举报
回复
<script> var s1="te....st"; var s2="t.e.s.t"; var pattern=/^[0-9a-z-_]+(.[0-9a-z-_]+)*$/; alert(pattern.test(s1)); alert(pattern.test(s2)); </script>
天际的海浪 2013-03-25
  • 打赏
  • 举报
回复
/^[a-z\d\-_]([a-z\d\-_]|\.(?!\.))*[a-z\d\-_]$/i
zyzy15 2013-03-25
  • 打赏
  • 举报
回复
哦不对,这样写开头结尾有可能是汉字啥的了…… 应该 /^[0-9a-z-_][0-9a-z-_.]*[0-9a-z-_]$/
zyzy15 2013-03-25
  • 打赏
  • 举报
回复
开头和结尾不能是. /^[^.][0-9a-z-_.]*[^.]$/

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧