javascript - 如何为跨度属性创建正则表达式?

标签 javascript html regex asp.net-mvc

好吧,我承认,我不擅长正则表达式。我正在尝试获取属性 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/

相关文章:

javascript - AngularJS - 突出显示部分文本会导致非英语语言中的单词损坏

如果找不到数组中的元素,Javascript 函数会尝试该元素

html - 在 HTML5 视频上方添加文字

python - 在 Python 中使用正则表达式解析 URL

javascript - 内容更新后更改 iframe 高度

python - 无法解析包含表格数据(iframe)的网站中的元素

html - 部分图像覆盖在响应式 View 中

java - 无法让正则表达式工作

java - 正则表达式匹配如何工作?

javascript - 使用相对定位在图像上创建标记?