繁体   English   中英

删除每个换行符后的字符串

[英]Remove string after character in every line break

嗨,我是javascript的新手,我有一些文字,包含多行。我想删除字符串'(''在每行中断后,然后用逗号替换所有换行符。这是我到目前为止

var text = "black gloves (?) 36622\nred eyes (?) 587624\nsolo (?) 1975043\nshort hair (?) 1628547"

var draft = text.replace(/(\r\n|\n|\r)/gm,",");
var final = draft.split('(')[0];
alert(final);

我似乎无法得到我的代码给我这个结果:

black gloves,red eyes,solo,short hair

但它只是给了black gloves

尝试这个:

 var text = "black gloves (?) 36622\\nred eyes (?) 587624\\nsolo (?) 1975043\\nshort hair (?) 1628547" var draft = text.replace(/(\\r\\n|\\n|\\r)/gm," "); var draft = draft.replace(/(\\d)+/gm,","); var draft = draft.replace(/\\(\\?\\)/gm,""); alert(draft); 

要么

 var text = "black gloves (?) 36622\\nred eyes (?) 587624\\nsolo (?) 1975043\\nshort hair (?) 1628547" var draft = text.replace(/\\(\\?\\)[ \\d\\r\\n]+/gm,","); alert(draft); 

您必须知道String.prototype.split()返回一个array ,在这种情况下,它不必使用它。

您只需要使用String.prototype.replace()方法来实现您想要的,如下所示:

 var text = "black gloves (?) 36622\\nred eyes (?) 587624\\nsolo (?) 1975043\\nshort hair (?) 1628547"; var draft = text.replace(/(\\r\\n|\\n|\\r)/gm, ",").replace(/[^a-zA-Z,]/g, " ").replace(/\\s+,/g, ",").trim(); console.log(draft); 

在这里它https://jsfiddle.net/loginshivam/724phqag/

var text = "black gloves (?) 36622\nred eyes (?) 587624\nsolo (?) 1975043\nshort hair (?) 1628547"

var array = text.split("\n");
var val;
for(in=0;in<array.length;in++){
    val=array[in];
    if(in == 0)
       text = val.substring(0, val.indexOf("(")) ;
    else
    text = text  + ","+ val.substring(0, val.indexOf("("));
}

没有正则表达式:

 var text = "black gloves (?) 36622\\nred eyes (?) 587624\\nsolo (?) 1975043\\nshort hair (?) 1628547" var textToArray = text.split('\\n'); for(var i = 0; i<textToArray.length; i++) { var index = textToArray[i].indexOf('(') - 1; textToArray[i] = textToArray[i].slice(0,index); } var finalString = textToArray.join(', '); alert(finalString); 

text.replace(/ \(.\) \d+/g, '').replace(/\r?\n/g, ',')

就像第二行替换一样简单。

 var text = "black gloves (?) 36622\\nred eyes (?) 587624\\nsolo (?) 1975043\\nshort hair (?) 1628547"; var final = text.replace(/ \\(.\\) \\d+/g, '').replace(/\\r?\\n/g, ','); alert(final); 

备用正则表达式解决方案( https://regex101.com/非常有用)。 它有点脆,因为它假定每一行都经过适当格式化并包含模式。

 var text = "black gloves (?) 36622\\nred eyes (?) 587624\\nsolo (?) 1975043\\nshort hair (?) 1628547" console.log(text.replace(/ \\(\\?\\) .*(\\n|$)/g, ",").slice(0,-1)); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM