JavaScript 和正则表达式

标签 javascript

我有这个字符串

java=10514;js=237;jsp=3995;web=5;xml=42

我想在单独的变量中提取每种语言的值编号,使用 javascript 和正则表达式,对于“java”情况,如下

(?<=java=).*?(?=;|$)

我试过这段代码

var myString = "java=10514;js=237;jsp=3995;web=5;xml=42";
var regexp_java = new RegExp('(?<=java=).*?(?=;|$)', 'g');    
var ncloc_java = sonar_myString.match(regexp_java);
var regexp_js = new RegExp('(?<=js=).*?(?=;|$)', 'g');    
var ncloc_js = sonar_myString.match(regexp_js);
var regexp_jsp = new RegExp('(?<=jsp=).*?(?=;|$)', 'g');    
var ncloc_jsp = sonar_myString.match(regexp_jsp);
var regexp_web = new RegExp('(?<=web=).*?(?=;|$)', 'g');    
var ncloc_web = sonar_myString.match(regexp_web);
var regexp_jsp = new RegExp('(?<=jsp=).*?(?=;|$)', 'g');    
var ncloc_jsp = sonar_myString.match(regexp_jsp);

但它不起作用。

如有任何建议,我们将不胜感激,并提前致谢

最佳答案

我相信您在这里使用了错误的数据结构。与其尝试为每种语言使用单独的变量,不如使用 HashMap 。首先拆分为分号处的字符串,然后将其流式传输以获取每种语言和值。

var input = "java=10514;js=237;jsp=3995;web=5;xml=42";
var map = {};
input.split(";").forEach(x => map[x.split("=")[0]] = x.split("=")[1]);
console.log(map);

关于JavaScript 和正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74927205/

相关文章:

javascript - 滚动时如何让div改变不透明度? (视差)

javascript - 如何在 html5 桌面通知中添加简单链接

javascript - 使用 JavaScript 获取选定的选项文本

javascript - meteor - 返回 false

javascript - 如何在对象中使用 Vue watch

javascript - 在javascript数组中插入项目并排序

javascript - 在同一范围内两次声明 Javascript 变量 - 这是一个问题吗?

javascript - 跟踪 svg 路径(在离散步骤中获取 x、y 坐标)

javascript - top.location.href 相当于redirect_to 或render?

javascript - 如何/在何处启用 CORS(跨源资源共享)?