javascript - 使用java脚本或jquery从字符串中如何获取两个分隔符之间提到的值列表?

标签 javascript jquery

示例输入:- (;1A;<1&&;2;<2&&;100Baxc02;<3&&;1000D33;<4&&;10001HGA;<5)

预期输出:- 1A,2,100Baxc02,1000D33,10001HGA

注意:- 输入的长度不固定,它会变化。

到目前为止我的代码:

var AlertExpressionWithUid = "(;1A;<1&&;2;<2&&;100Baxc02;<3&&;1000D33;<4&&;10001HGA;<5)";
theArray = AlertExpressionWithUid.split(';');
output="";
for (i = 0; i < theArray.length; i++) {
  theelm = theArray[i];
  output = output + theelm;
}
alert(output);

最佳答案

看起来您想要匹配 ; 之间不包含 && 的子字符串 - 为什么不使用正则表达式?使用后视:

const AlertExpressionWithUid = "(;1A;<1&&;2;<2&&;100Baxc02;<3&&;1000D33;<4&&;10001HGA;<5)";
const matches = AlertExpressionWithUid.match(/(?<=;)[^;&]+(?=;)/g);
console.log(matches);

或者,由于仅在较新的浏览器中支持lookbehind,如果没有lookbehind,您将不得不使用循环:

const AlertExpressionWithUid = "(;1A;<1&&;2;<2&&;100Baxc02;<3&&;1000D33;<4&&;10001HGA;<5)";
const re = /;([^;&]+);/g;
let match;
const matches = [];
while ((match = re.exec(AlertExpressionWithUid)) !== null) {
  matches.push(match[1]);
}
console.log(matches);

关于javascript - 使用java脚本或jquery从字符串中如何获取两个分隔符之间提到的值列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51299381/

相关文章:

javascript - 如何检查 JavaScript 对象是否为 JSON

javascript - 如何使jquery代码更简单

带有简单换行符的 jQuery 克隆

jquery - 使用自己的图像更改 jQuery UI 按钮的图标

jquery - 如何阻止查看器在网页上水平滚动?

javascript - 如何使用 jsPDF 创建输出的 pdf, 'exactly' 作为 window.print() 命令给出?

javascript - 仅当在多选中选择特定选项时才显示输入字段

javascript - jsp : Could I change the order of render/execution

javascript - react 中的支持实例是什么?

javascript - 如何使用 Javascript 或 Java 获取 CSV 动态更改的实际数字