javascript - 在javascript中分割这个的逻辑?

标签 javascript regex

我有以下文字,

              Name:Jon
               Age:25
              Gender:Male

如何拆分它以获得以下结果,

              Jon
              25
               Male

如果我用这个,

           var results = file.split(":");

我得到结果[0]=姓名,结果[1]=JonAge,结果[2]=25性别, 当我给予时,

            var results = file.split("\n");

我得到结果[0]=姓名:乔恩,结果[1]=年龄:25,...

但是我无法得到上面的内容,如何同时检查冒号或换行符?

最佳答案

您需要先在换行符上分割,然后在冒号上分割:

file.split('\n').map(function(line){return line.split(':')[1];})

显然,这可以通过循环来完成,但是 map 函数使它变得漂亮和整洁。

您还可以使用正则表达式:

file.match(/[^:]+$/gm)

最后,您可以通过创建适用于数组的 split 函数来扩展数组的功能:

Array.prototype.split = function(s) { 
    return this.map( function(x) { return.x.split(s); } ); 
}

然后你可以链接你的分割,你会得到一个数组的数组:

var results = file.split('\n').split(':');
console.log( 'Name: ' + results[0][1] );
console.log( 'Age: ' + results[1][1] );
console.log( 'Gender: ' + results[2][1] );

您选择的方法很大程度上取决于您想要的“安全”程度。即,您是否担心字段名称或值中的格式错误的输入或冒号......

关于javascript - 在javascript中分割这个的逻辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19060991/

相关文章:

Javascript 正则表达式用表情符号替换文本

php - 如何用 PHP 解析 phpDoc 风格的注释 block ?

javascript - 在字符串中用 (variable*percentage)/100 替换 %[variable, percentage] 的最佳方法是什么?

javascript - 隐藏复选框并禁用 slickgrid 中的全选选项

javascript - Nodemon 自动更新对我的脚本的更改

javascript - 如何使用javascript更改src值

javascript - 为什么我在接口(interface)和可观察对象方面遇到错误?

c++ - 奇怪的正则表达式机器与测试仪不同

regex - 允许 .htaccess url 重定向中存在空格

javascript - 计算数量*价格=总计|总计/价格 = 数量