2011-01-16 18 views
2

私は、次の文字列を持っている:私はこのように見て値を配列にそれを変えたいこの単純なJavaScriptコードで何が問題になっていますか?

(1-$500.00)(2-$20.00) 

を:

output[0] = 1-$500.00 
output[1] = 2-$20.00 

だから私はこの試みた:

var output = '(1-$500.00)(2-$20.00)'; 
var pattern = "/\\)\\(|\\(|\\)?/"; 

output = output.split(pattern); 

alert(output); 

しかし、それを単に元の文字列を警告し、仕事を完了させません。私の正規表現やsplit関数を使用している方法に何か問題がありますか?

答えて

3

正規表現を引用する必要はありません。

var pattern = /\)\(|\(|\)/; 

コンテンツを確保するために期待されるフォーマット(検証)以下の、先頭と最後の空のエントリを避けるため、私はRegExp.execの代わりString.splitを使用すると思います。

function my_split(input) { 
    var pattern = /\((\d+-\$\d+\.\d+)\)/g; 
    var output = []; 
    while((m = pattern.exec(input))) 
    output.push(m[1]); 
    return output; 
} 
+0

は私のために動作しません - (http://writecodeonline.com/javascript/を使用して試験)単一文字への入力を分割し – schnaader

+0

は(http://jsfiddle.net/XE6pQ/)を動作するようですが、結果には最初のインデックスと最後のインデックスの両方に空の文字列も含まれます。 – polarblau

+0

@polar:これは '.split'を使うと避けられません。 '.exec'を使って空の2つのものを最初から避ける方法については、updateを参照してください。 – kennytm

関連する問題