-1

在我的应用程序中,HTML 元素的 id 属性应该以 #. 开头。根据 HTML5,id 属性的唯一限制是,它不能包含任何空格,并且应该至少有一个字符长。所以我写了以下正则表达式根据上述约束匹配 id 属性

idMatch: /^#\S+$/

现在我想删除字符串开头的#字符...我的问题是,我可以在一个正则表达式中执行这两个操作...即..我可以在第一个'#'之后提取字符(字符可能包含使用单个正则表达式匹配上述约束的字符串中的任何非空白字符,包括“#”。匹配的结果应该做两件事 1)从一组字符串中识别 id 字符串(id 以 # 开头并遵循 HTML5 id 命名规则) 2)在第一个 #.. 之后提取已识别字符串的部分

4

2 回答 2

1

这是一个小片段,只需在替换方法中执行正则表达式文本,因此如果匹配,则返回不带# 的 id。创建一个小辅助函数以使其更易于使用。

var regex = /^#\S+$/,
    id = '#foo',
    str;

str = id.replace(regex, function($1) {
    return $1.split('#').join('');
});

console.log(str);
于 2012-05-02T18:03:01.850 回答
1

你可以在 RegExes 中使用括号来做你想做的事。

/^#(\S+$)/.test(testString);
var idWithoutHash = RegExp.$1;
于 2012-05-02T18:04:20.300 回答