Javascript 将n个字符从字符串的前面移到末尾

Javascript 将n个字符从字符串的前面移到末尾,javascript,jquery,string,Javascript,Jquery,String,这似乎是个容易的问题,但我找不到解决办法。我想先从字符串中取出两个字母,然后把它们移到字符串的末尾。例如,OK12将变成12OK 编辑:到目前为止,我已经尝试过切断字符串,然后将其添加到字符串的其余部分,但我认为有一种单行解决方案,比如预定义函数或其他东西。各种技术: str.slice(2) + str.slice(0,2); str = str.replace(/^(.{2})(.+)/, '$2$1'); for (var a=str.split(""),i=2;i--;) a.pus

这似乎是个容易的问题,但我找不到解决办法。我想先从字符串中取出两个字母,然后把它们移到字符串的末尾。例如,OK12将变成12OK

编辑:到目前为止,我已经尝试过切断字符串,然后将其添加到字符串的其余部分,但我认为有一种单行解决方案,比如预定义函数或其他东西。

各种技术:

str.slice(2) + str.slice(0,2);

str = str.replace(/^(.{2})(.+)/, '$2$1');

for (var a=str.split(""),i=2;i--;) a.push(a.shift());
str = a.join('');
通用解决方案:

var result = str.substr(num) + str.substr(0, num);

我喜欢
regex
的方式,但这些技术在这里太过成熟了。顺便问一下,你为什么使用
+
而不是
*
?@gdoron!:)但是它们是为了好玩才被包括进来的。@gdoron没有什么好的理由来解释
+
*
的区别;我想我假设如果你对移动信件感兴趣,你会期望一个非身份的结果;)+1是的,正则表达式方法真的很棒!同意@gdoron,您最好使用
*
@VisioN如果正好有两个字符(例如
“AB”
),则
+
将无法匹配,导致替换不执行任何操作,导致TA DA-<代码>“AB”,正确的结果。在这种情况下使用
+
会使解释器做的工作更少,并且仍然得到正确的结果。@JosephDreamer。当一个人说他试过了,我相信他。包含大量失败尝试的好处是什么?他可能不知道所有的字符串函数。@marue。使用哪些关键字?你能告诉我怎么做吗?我一开始用的是slice,但完全忽略了一个事实,我可以在一行中完成它,在主题tho中没有精确到那个程度,对不起。@marue。我的朋友,你刚才看到它可能很棘手,人们可能会像它发生在你身上一样感到困惑<代码>:)+1表示通用。然而,正则表达式方法似乎更简洁,但速度较慢。。。但是更整洁!:)@愿景。你真的认为正则表达式是最好的方法吗?如果匹配第四个字符,你会说同样的话吗<代码>/.{3}(../而不是
str[3]
?regex-ins并不总是最好的解决方案,很多时候也不是。@gdoron我不是在说这个。我喜欢regex,主要是因为美观,而不是实用性。
var a='ok12';
a=a.substr(2,a.length-2)+a.substr(0,2);
"OK12".substr(2) + "OK12".substr(0,2)
var result = str.substr(num) + str.substr(0, num);