从Javascript中的复杂字符串中删除一些空格
Remove some blank spaces from a complicated string in Javascript
我有以下字符串:
14/04/22 10:45:20 12.08N 87.65W 15.0 2.9ML Frente a Corinto
14/04/21 11:05:34 12.10N 87.70W 140.0 3.5MC Cerca de Masachapa
14/04/22 09:00:09 12.35N 86.44W 12.4 1.3ML Cerca del volcan Momotombo
14/04/21 23:33:37 12.35N 86.63W 7.1 1.0ML SO de La Paz Centro/Nagarote
我想把它们转换成这个:
14/04/22-10:45:20-12.08N-87.65W-15.0-2.9ML-Frente a Corinto
14/04/21-11:05:34-12.10N-87.70W-140.0-3.5MC-Cerca de Masachapa
14/04/22-09:00:09-12.35N-86.44W-12.4-1.3ML-Cerca del volcan Momotombo
14/04/21-23:33:37-12.35N-86.63W-7.1-1.0ML-SO de La Paz Centro/Nagarote
有人可以帮我在Javascript中使用正则表达式吗?
谢谢!
PD:已编辑。好吧,让我更具体一点:我想用"-"替换所有空格,除了字母前面的空格,但也要替换单词开头字母第一次出现之前的空格。请看我上面的例子,了解我需要什么。
您可以像这样使用前瞻正则表达式:
var s = '14/04/21 23:33:37 12.35N 86.63W 7.1 1.0ML SO de La Paz Centro/Nagarote';
var r = s.replace(/ +(?![A-Za-z])/g, '-').replace(/ (?=[a-zA-Z])/, '-');
//=> 14/04/21-23:33:37-12.35N-86.63W-7.1-1.0ML-SO de La Paz Centro/Nagarote
怎么样?非常简单。这只是假设你只想替换后面跟着一个字母的第二个空格:
"14/04/22 10:45:20 12.08N 87.65W 15.0 2.9ML Frente a Corinto".replace(/'s(?='d)/g, '-').replace(/ /, '-')
"14/04/22-10:45:20-12.08N-87.65W-15.0-2.9ML-Frente a Corinto"
如果正则表达式本身不能按您的意愿工作,那么这段代码可能对您来说是正确的,因为我们使用正则表达式来获取任何包含数字的字符串,因为在这种情况下,这是数据中唯一的常量,从中我们将所有数据存储在一个时态数组中,完成后我们生成所需的输出。
function formatString(str) {
var ss = str.split(' ');
var listItems = [];
var listStrings = [];
var finalStringInt = "";
var finalStringStr = "";
for (var t = 0; t < ss.length; t ++) {
var matchNumer = ss[t].match(/'d+/g);
if(matchNumer != null){
listItems.push(ss[t]);
}else{
listStrings.push(ss[t]);
}
}
for (var sx = 0; sx < listItems.length; sx++) {
finalStringInt += listItems[sx]+"-";
}
for (var xx = 0; xx < listStrings.length; xx++) {
finalStringStr += listStrings[xx]+" ";
}
return finalStringInt.trim() + finalStringStr.trim();
}
var s="14/04/21 23:33:37 12.35N 86.63W 7.1 1.0ML SO de La Paz Centro/Nagarote";
console.log(formatString(s));
输出::
14/04/22-10:45:20-12.08N-87.65W-15.0-2.9ML-Frente a Corinto
14/04/22-09:00:09-12.35N-86.44W-12.4-1.3ML-Cerca del volcan Momotombo
根本不使用正则表达式:
var s="14/04/22 10:45:20 12.08N 87.65W 15.0 2.9ML Frente a Corinto";
s = s.split(' ', 6).join('-');
console.log(s);
输出:
14/04/22-10:45:20-12.08N-87.65W-15.0-2.9ML
这将替换字符串中的前六个空格。
相关文章:
- 当可见属性设置为 false 时,使用 JavaScript 删除空格
- 我想限制用户在jquery中输入文本后面的空格,如果它在文本后面,我会删除空格
- 删除空格后的所有字符串
- jQuery从数组中删除空格
- 谷歌地图自动完成删除空格并在地址字符串中插入加号(+)
- 表单验证 - Javascript 删除空格电话号码
- 如何删除空格和重新排序单词
- 从角度文本中删除空格
- JavaScript:使用 decodeUri 或 unescape 不会删除空格
- JSP 页自动删除空格
- 是否存在替换方法无法从字符串中删除空格的情况
- JavaScript 删除空格回车符
- 发布带有空格的隐藏字段会删除空格后的内容
- JS/JQuery-如果空格是第一个和/或最后一个字符,则从输入字段中删除空格
- 从字符串中删除空格,并在分隔行中写入文本
- 从锚href中删除空格
- 从javascript字符串中删除空格,但不删除所有空格
- 如何从正则表达式[^wxC0-xFF]中删除空格和下划线
- 提取url参数后删除空格
- 如何删除特殊字符,但不删除空格