好吧,我承认,我不擅长正则表达式。我正在尝试获取属性 data-hover-id 的值。
我有以下 javascript 代码:
var editText = "<span class='hover-content' data-hover-id='2' >Some text</span>";
var hoverId = -1;
// Get HoverID if it exists
var regex = /span.*data-hover-id=["']?((?:.(?!["']?\s+(?:\S+)=|[>"']))+.)["']?/;
var result = regex.exec(editText);
if (result.length > 1) {
hoverId = result[1];
}
上面代码的结果是hoverId equals '2(撇号2)。
我想要不带引号或撇号的值 2。在这种情况下,正则表达式是什么?在 Javascript 中有没有更好的方法来做到这一点?
最佳答案
你可以让你的正则表达式更简单,比如:
var re = /data-hover-id=["'](.+)["']/;
var result = re.exec(str)[1];
编辑:如果您需要考虑完全没有引号,请尝试这个:
/data-hover-id=['"]?([^\s>]+)['"]?/
关于javascript - 如何为跨度属性创建正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12829448/