任务:将每个单词的第一个字母移到末尾,然后在单词末尾添加“ay”。保持标点符号完整。
这是我的代码!它有效,但是我不能保留标点符号完整,如何做到这一点。最好不要对源代码进行太多更改。
function pigIt(str){
return str.split(" ").map( (a) => a.slice(1) + a[0] + 'ay').join(' ')
}
代码如何工作的示例:
pigIt('猪拉丁语很酷'); // igPay atinlay siay oolcay
PigIt('你好世界!'); // 你好,奥尔德韦!也就是说,如果句子中没有标点符号,那么我的代码就可以工作,但是我如何考虑标点符号呢?
\p{L}
- 匹配任何语言的字母;(\p{L})
- 以单词的第一个字母分组(第一个);(\p{L}*)
- 与单词的其余字母组成的组(第二组);g
- 强制您编辑所有单词的标志。没有的话,只能更换一次;u
- Unicode 处理标志,没有它,表达式\p{L}
将不起作用;$2
- 插入第二组 - 单词的尾部;$1
- 插入第一组 - 单词的第一个字母。