は、一度にすべての特殊文字を一致させるために、正規表現を使用する必要があります。 「スペシャル」とは、あなたが「手紙なし」を意味すると仮定します。
var pattern = /([^ a-z]?)[a-z]+/gi; // Pattern
var str = "my name is john#doe oh.yeh"; // Input string
var strArr = [], match; // output array, temporary var
while ((match = pattern.exec(str)) !== null) { // <-- For each match
strArr.push((match[1]?'&':'') + match[0]); // <-- Add to array
}
// strArr is now:
// strArr = ['my', 'name', 'is', 'john', '&#doe', 'oh', '&.yeh']
連続する特殊文字と一致しません。そのためにパターンを修正する必要があります。たとえば、すべての連続する文字を含める場合は、([^ a-z]+?)
を使用します。
また、最後の特殊文字は含まれません。これも含めたい場合は[a-z]*
を使用し、!== null
を削除してください。
それは ' '&#doe''または'' も&doe''べきでしょうか?あなたは ''&yeh''ではなく ''&.yeh''を持っています。 –
これらの「特殊文字」を入力の一部として使用することは期待されていますか? –
[異なる記号を含む文字列を分割するにはどうすればよいですか?](http://stackoverflow.com/questions/1880332/how-do-i-split-a-string-that-contains-different-signs) – outis