在我的应用程序中,HTML元素的id属性应以#开头。 根据HTML5,id属性的唯一限制是,它不应该包含任何空格,并且应该至少有一个字符长。 所以我写了下面的正则表达式,根据上面提到的约束
匹配id属性idMatch: /^#\S+$/
现在我要删除字符串开头的#字符... 我的问题是,我可以在一个正则表达式中执行这两个操作...即... 我可以使用单个正则表达式在匹配上述约束的字符串中的第一个'#'(字符可能包含任何非空白字符,包括'#')之后提取字符。匹配的结果应该做两件事 1)从一组字符串中识别id字符串(id以#开头并遵循HTML5 id命名规则) 2)首先在#..
之后提取识别出的字符串的一部分答案 0 :(得分:1)
这是一个小片段,只需在替换方法中执行正则表达式文本,如果匹配则返回不带#的id。创建一个小帮助函数,使其更易于使用。
var regex = /^#\S+$/,
id = '#foo',
str;
str = id.replace(regex, function($1) {
return $1.split('#').join('');
});
console.log(str);
答案 1 :(得分:1)
您可以在RegExes中使用括号来做您想做的事。
/^#(\S+$)/.test(testString);
var idWithoutHash = RegExp.$1;