2011-08-06 24 views
0

私はユーザー入力から関数に渡す文字列を持っていますが、正規表現を使用して非単語文字が存在するかどうかを検出しますそれは配列[0]の文字列のフリスト文字を抽出し、配列[1]に残りたいと思うのですが、これは正規表現でおそらく/ ^(長さゼロのセレクタ)/ /私自身の表現を書こうとしましたが、うまく動作するのに問題がありました。何か案は?文字列を特定のインデックスで配列に分割する

EDIT: 私は基本的にインデックス0と1の間のスペースを選択できる正規表現を探しています。それで分割することができます。だから、もし '#domElementId'が['#'に入ったら、 'domElementId']が出てきます。このような

答えて

0

は実際にそれを考え出し、正規表現の中のとアウトを学ぶの2日後に本当に簡単になってしまいました。 StackOverflowは、しかし、欠かせないヘルプでした。とにかくここで私が最終的に思いついたのはここです。

function splitFirst(a) { 
    return a.split(new RegExp('(?=\\w{'+(a.length-1)+'}$)')); 
} 
  1. 私はスプリットのparams内の正規表現を宣言しています、その理由は、私は式に変数を渡したいということです。
  2. 私は基本的に先読み、文字列(\ w)の文字数から1を引いた数(または他の任意のインデックス)を選択しています。
  3. 私は文字列として式をアセンブルしていますので、 '\\'はlitteral \ w(任意の数字を意味します)の直後に文字列の終わりが続くことです。
1

何か:

function splitCharacters(str) { 
    return [str.split(/[0-9a-z]+/gi).join(''), str.match(/[0-9a-z]+/gi).join('')]; 
} 
var array = spiltCharacters('#asdfasdf#3434+_+_+_ASDASD'); 
+0

私は特に、1つの石で2つの鳥を殺すことと[charat(0)、split(1)]で配列を塗りつぶすために分割を行うことに興味があります。私は本当に正規表現を探していますインデックス0と1の間のスペースを選択することができます。 – TERMtm

+0

ありがとう、私は今どのような一致が表示されます。 – TERMtm

関連する問題