2015-10-16 90 views
2

我要扭轉字符串「我的![email protected]」 我的輸出必須是「YM![email protected]倒車字符串,而不會影響任何特殊字符

我寫了下面的代碼賦予輸出「YM埃曼SI NIR」 請解決該問題:

return str = stringIn.split("").reverse().join("").split(/[^a-zA-Z]/g).reverse().join(" "); 
+0

你怎麼看你的代碼呢? –

+0

是你想要翻轉的字詞,還是整個字符串? – OliverRadini

+0

嘗試顛倒每一個工作+逃生和unescape每個詞 – Praveen

回答

5

從常規的表情,似乎你準則「特殊字符」比字母A到Z.

您可以使用其他任何String.prototype.replace與用於匹配字母序列的正則表達式,然後提供在替換之前修改匹配的替換功能,例如,

var stringIn = 'My! [email protected]'; 
 
var rev = stringIn.replace(/[a-z]+/gi, function(s){return s.split('').reverse().join('')}); 
 
document.write(rev); // yM! [email protected]

+0

如果我輸入「我的![email protected]讓我們的代碼」我輸了「yM![email protected] edoc-stel」而不是「yM! [email protected] stel-edoc「。 「讓 - 代碼」必須被識別爲一個詞 – rkkkk

+0

@ Rinkukumari-只在字符組中包含連字符:'/ [a-z - ] +/gi'。請注意,單詞字符匹配'\ w'不包含連字符,但包含數字,因此您對「單詞」的解釋與其他單詞不同(不是說你錯了,只是不同)。 ;-) – RobG