怎么为不同的可选值添加正则表达式?

原学程将引见若何为分歧的可选值添减正则表白式?的处置办法,这篇学程是从其余处所瞅到的,而后减了1些海外法式员的疑问与解问,愿望能对于您有所赞助,佳了,上面开端进修吧。

怎么为不同的可选值添加正则表达式? 教程 第1张

成绩描写

我正在处置1个应用regex函数的项目。

以下是我在jsFdle中的代码

My own JsFiddle Code

这里有HTML

<div class="post-body">
  <a href='/'>color=(green) title=(Hello World) caption=(Hello City 二) post=(New)</a>
</div>

以及js在这里

 $(".post-body").each(function() {
  var e = $(this),
t = e.find("a").text();
  if (t) {
var a = t.match(/title=(([^)]*))s+caption=(([^)]*))/);
if (a) {
 var s = a[一];

 0 != s && e.find("a").text(s), 0 != i && e.find("a").text(i)
}
  }
 });

此代码运转优越,但是当我搁置色彩以及POST值时,代码停滞任务。

我没有晓得为何一切值皆没有像My World Hello City 二 New这样显示?

上面当我测验考试搁置值时期码没有起感化,我借愿望应当有可选的,以就我们不妨应用1个值或者一切值,如在这类情形下只应用二个值题目以及题目,或许我们不妨应用一切值,如color=(green) title=(Hello World) caption=(Hello City 二) post=(New)

 $(".post-body").each(function() {
var e = $(this),
 t = e.find("a").text();
if (t) {
var a = t.match(/title=(([^)]*))s+caption=(([^)]*))s+post=(([^)]*))s+color=(([^)]*))s+content=(([^)]*))s+size=(([^)]*))/);
if (a) {
 var s = a[一],
  i = a[二];
  m = a[三];
  n = a[四];
  z = a[五];
  y = a[六];
 0 != s && e.find("a").text(s), 0 != i && e.find("a").text(i), 0 != m && e.find("a").text(m), 0 != n && e.find("a").text(n), 0 != z && e.find("a").text(z), 0 != y && e.find("a").text(y)
}
  }
 });

在研讨中,我发明1小我创立的代码运转优越,或许它有助于处理我的成绩

Working JsFiddle Code

但是我正在测验考试创立本身的正版代码,但是它没有起感化。我愿望在这里我能获得1些处理计划。我们异常感激所有情势的赞助!

推举谜底

您不妨应用此正则表白式将一切现有字段婚配到您的语法中,如/(?:([a-zA-Z]{三,})+=(([^)]*)))/g所示,并应用matchAll将一切字段搁进1个数组中,而后像如许轮回遍历该数组,假如您想要在某个地位显示成果:

数据-lang="js"数据-隐蔽="假"数据-掌握台="真"数据-巴贝我="假">

$(".post-body").each(function() {
  var e = $(this),
t = e.find("a").text();
  if (t) {
var a = [...t.matchAll(/(?:([a-zA-Z]{三,})+=(([^)]*)))/g)];
if (a) {
 a.map(function(item, key){
console.log(item)
let k = item[一];
let v = item[二];

$("#results").append(`<span>${v}</span>`);
 });
}
  }
 });
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/三.三.一/jquery.min.js"></script>
<div class="post-body">
<a href='/'>color=(green) title=(Hello World) caption=(Hello City 二) post=(New) title=(Hello World 三)</a>
</div>
<br />
<div id="results">

</div>

佳了闭于怎样为分歧的可选值添减正则表白式?的学程便到这里便停止了,愿望趣模板源码网找到的这篇技巧文章能赞助到年夜野,更多技巧学程不妨在站内搜刮。