【发布时间】:2018-03-26 04:30:47
【问题描述】:
如果标题不清楚,这里是一个例子: 输入:
'hello howis.going'
预期输出:
'ginog siwoh.olleh'.
可以用正则表达式编程吗?
下面是我的代码,
function fn(str) {
return str.replace(/[^\s.]+/g, function(m) {
return m.split('').reverse().join('');
});
}
var res = fn('hello howis.going')
console.log('result = ', res);
这是我现在的输出:
olleh siwoh.gniog
【问题讨论】:
-
你可能会使用正则表达式来查找单词和它们之间的字符,但是你需要更多的逻辑来反转和替换它们,以便将标点符号等保持在句子中的相同位置.
-
那么,您希望将此函数应用于“你好。我的问题不清楚”...“raelc.nu si noitseuq ym olleh”的结果是什么?
-
@RobG 是的,这就是我在这里发布它的原因。我想看看有什么我忘记的技巧...
-
@JaromandaX emm 这是个好问题,为什么会更容易?
-
然后
/[a-z]+|[^a-z]+/ig将匹配 a-z 而不是 a-z 的序列来创建一个数组。现在您可以交换单词并将它们反转并将数组与原始位置的标点符号重新连接在一起。
标签: javascript arrays regex string reverse