首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的Javascript trim函数不起作用?

为什么我的Javascript trim函数不起作用?
EN

Stack Overflow用户
提问于 2013-09-10 10:03:12
回答 2查看 23.4K关注 0票数 5

我正在使用这个函数来构建一个小猪拉丁语翻译器,似乎已经解决了除了.trim()部分之外的所有问题。我应该做哪些不同的事情?

代码语言:javascript
复制
function ParseText() 
{

  var  myText = "asdf\n hat\n cat dog\n apple";

  var lines = myText.split("\n");
  var results = "";

  for (var i = 0, len = lines.length; i < len; i++) {
    lines[i].trim();
    var words = lines[i].split(" ");

    for (var j = 0, lenght = words.length; j < lenght; j++) {
      var word = words[j];

      if (word.charAt(0) == "a" || word.charAt(0) == "e" ||  word.charAt(0) == "i" || word.charAt(0) == "o" || word.charAt(0) == "u" || word.charAt(0) == "y")

      {
        results = results + word + "ay ";
      }else {
        var mutated = word.substring(1, word.length);
        mutated = mutated + word.charAt(0)+ "ay ";
        results = results + mutated;
      }
    }
    results = results + "\n";
  }
  return results;
}

lines[i].trim();这条线上似乎什么都没发生。空格仍将成为拆分数组中的\n项。

我应该做些什么来删除空格?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-10 10:23:36

lines[i].trim();不会修改当前字符串(请参阅doc here)。它返回一个新的字符串。

如果你想修剪当前的字符串,那么你需要这样做:

代码语言:javascript
复制
lines[i] = lines[i].trim();
票数 14
EN

Stack Overflow用户

发布于 2013-09-10 10:18:34

根据评论,这里是使用regex的非常基本的猪拉丁语版本,它可以处理小写字符串,但它可以进行调整,以处理混合的大小写:

代码语言:javascript
复制
function pigLatin(str) {
  return str
    .toLowerCase() // make sure string is lowercase
    .replace(/\b[aeiuo]\w+\b/g, '$&way') // starts with vowel
    .replace(/\b([^aeiou\s])(\w+)\b/g, '$2$1ay'); // starts with consonant
}


// Example: 
var str = 'hello world egg plant yellow';
console.log(pigLatin(str)); //=> "ellohay orldway eggway lantpay ellowyay"
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18709663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档