2016-12-26 2 views
-5

私はJames Bond (007)という形式の文字列を持っています。 {name: "James Bond", code: "007"}正規表現を使用してサブストリングを作成する

私はforループを実行してこれを行うことができますが、regexpを使用してより簡単で効率的かどうかを知りたいと思います。

名前またはコードに(または)がないと仮定します。 ここでnodejsを使用しています。

+0

[ '/( [?](?:\ s * [az] +)*)。*?(\ d +)/ i'](https://jsfiddle.net/tusharj/r1324b3g/) – Tushar

答えて

1

ここに置き換えるための必要はありません、ただ

const [, name, number] = "James Bond (007)".match(/(.*?) \((.*?)\)/); 
 
    
 
console.log({name, number});

1
"James Bond (007)".replace(/(.* .*) \(?(.*)\)?/, '{name: "$1", code: "$2"}') 

別のオプション、以上の1つのスペースで名前をサポート:

"James Bond (007)".replace(/(.*) \((.*)\)/, '{name: "$1", code: "$2"}') 
+0

名前からコードを区切る括弧があります。つまり、James Bond(007) –

+0

はまだ動作しています。だからこそ私は '\(?' – GilZ

+0

ありがとう、2番目のオプションが動作し、最初のオプションは末尾に残っている)をコードに追加したのです。 –

関連する問題