首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用javascript匹配id选择器的正则表达式

问使用javascript匹配id选择器的正则表达式
EN

Stack Overflow用户
提问于 2012-04-30 21:59:16
回答 2查看 661关注 0票数 0

在我的程序中,我想验证html标签的id。对于我的函数,id作为字符串传递给#..我发现在HTML中命名和标识的规则是,

  • 必须以字母A或A
  • 开头:字母(A)、数字(0-9)、连字符("-")和下划线("_"),因此我编写了以下正则表达式。

/(^|\s)(#{1})(a-zA-Z)(^a-zA-Z0-9{0})/g;

但是它给了我错误的结果。我的正则表达式有什么问题?

EN

回答 2

Stack Overflow用户

发布于 2012-04-30 22:43:42

代码语言:javascript
复制
/#[a-z][\w\d-]*\b/gi

  • \w表示来自a-z、A-Z和下划线的字母(_)
  • \d表示来自0-9
  • \b的整数表示单词边界
  • i标志是捕捉第一个字母而不管大小写

编辑:抱歉在组的开头忘记了边界。

代码语言:javascript
复制
var str = '#sss #s23 dd#ww';
// #ww will be omitted because # is not the
// first char in the char group there.
var rx = /(^|\s)(#[a-z][\w\d-]*)\b/gi;
var arr = [];
str.replace(rx, function(){arr.push(arguments[2])});
// this is just to catch the id's.
// it won't modify str.
for (var i = 0; i < arr.length; i++) {
    console.log(arr[i]);
}
票数 2
EN

Stack Overflow用户

发布于 2012-04-30 22:01:49

尝试:

代码语言:javascript
复制
/^#[a-z]{1}[a-z0-9_-]*$/i

​

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10391140

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档