【问题标题】:splitting words at camelCase javascript [duplicate]在camelCase javascript中拆分单词[重复]
【发布时间】:2021-04-06 16:08:32
【问题描述】:

我有一个这样的字符串:

all purpose shineBlue gloves

当我需要他们喜欢时

all purpose shine, blue gloves

这可以用 javascript 实现吗?

我的代码是

 var itemNameSplit = '<%= data[i].ITEMNAME %>';
 var splitResponse = itemNameSplit.split("");
 document.write("<td>" + splitResponse + "</td>")

但它的回归:

A,l,l, ,P,u,r,p,o,s,e, ,S,h,i,n,e,B,l,u,e, ,R,u,b,b,e,r, ,o,n, ,G,r,e,y, ,P,o,l,l,y, ,C,o,t,t,e,n, ,G,l,o,v,e,s

提前致谢!

【问题讨论】:

  • 这能回答你的问题吗? splitting string values using javascript
  • @Gianluca 我不认为你的问题那么简单。要拆分单词,您需要知道这些单词及其边界。这意味着使用字典。其次,您想要的输出还需要在句子中添加标点符号。考虑到这一点,如果这对您来说可行,您可能需要查看 NL 处理 API。

标签: javascript html jquery node.js ejs


【解决方案1】:

假设字符串中只有一个 camelCase 实例的解决方案。

var s = 'all purpose shineBlue gloves'
var regex = /[A-Z]/g
var changeUpper = s.charAt(s.search(regex)).toLowerCase()
var solution = s.split(regex).join(`, ${changeUpper}`)
document.write("<td>" + solution + "</td>")

如果字符串中有多个 camelCase 实例,您可以使用以下解决方案

var s = 'all purpose shineBlue gloves with anotherCamel'
var regex = /[A-Z]/g
var transform = s.split(' ')
var map = transform.map((word) => {
  if (word.search(regex) != -1) {
    var changeUpper = word.charAt(word.search(regex)).toLowerCase()
    var splitWord = word.split(regex).join(`, ${changeUpper}`)
    return splitWord
  } else {
    return word
  }
})
var solution = map.join(' ')
document.write('<td>' + solution + '</td>')

【讨论】:

  • 我认为这可行,但您设置的变量值s 并不总是all purpose shineBlue gloves with anotherCamel。它会根据data[I].ITEMNAME 的值而改变。当我使用你给的解决方案1时,data[I].ITEMNAME, I got the result , all , aurpose , aubricant, alue , aubber on , arey , aolly , aotten , aloves`。尽管如此,仍然感谢您的帮助。
  • 是的,第一个解决方案仅对具有 1 个 camelCase 实例的句子有效,因为它仅在第一次出现大写字符时查看。如果您正在遍历一组字符串(我猜这就是 data[i].ITEMNAME 正在做的事情),那么第二种解决方案可能是最好的。
  • 我也尝试了第二种解决方案,结果看起来更好看,但仍然没有正确拆分字符串。还有什么我可以尝试或寻找更多的吗?
  • 您能否显示获取属性的完整对象(data[i])? (数据[i].ITEMNAME)。这样我可以更好地理解代码的目标和潜在调整。
猜你喜欢
  • 1970-01-01
  • 2016-10-27
  • 2012-01-14
  • 1970-01-01
  • 2011-05-30
  • 2011-05-31
  • 2010-12-04
相关资源
最近更新 更多