2017-01-12 2 views
0

文字列を取り出してその中のすべての[]を取り除きたいだけでなく、それらの中の任意のテキスト/文字を削除したいと思います。私は正規表現か別の方法を使うべきかどうか分かりません。
例:「<content>」を文字列から削除する

"Name []"` to `"Name" 
"Another name [text123]"` to `"Another name" 
"Yet another name [a] [] [c]"` to `"Yet another name" 
"[So many names] [test] []"` to `"[So many names]" 
"[TITLE] name []"` -> `"name" 
"[txt2] [namez] [] a"` -> `"a" 
+0

に従うよう、あなたは何を試してみましたか?私はString :: regexpで置き換える使用します。また、これはあなたがhttps://regex101.com/#javascript – jusopi

答えて

1

その。

例は

var originalStrings1 = '[So many names] [test] []'; 
 
var originalStrings2 = '[TITLE] name []'; 
 

 
console.log(getName(originalStrings1)); 
 
console.log(getName(originalStrings2)); 
 

 
function getName(str) 
 
{ 
 
\t var hasName = str.replace(/\[(.*?)\]/gm, ''); 
 
\t var noName = str.match(/\[(.*?)\]/gm); 
 
\t if(isEmpty(hasName)) 
 
\t { 
 
\t \t return 'Name is: '+noName[0]; 
 
\t } 
 
\t else 
 
\t { 
 
\t \t return 'Name is: '+hasName.replace(/^\s+|\s+$/g,''); 
 
\t } 
 
} 
 

 
function isEmpty(str) 
 
{ 
 
\t return str.replace(/^\s+|\s+$/g, '').length == 0; 
 
}

-1

は、私はもちろんREGEXを使用したい、より速く、より強く、より簡単。以下は

作業抜粋です:いくつかの正規表現の実行を取るつもり

var str = "Yet another name [a] [] [c]"; 
 
var res = str.replace(/\[.*\]/i, " "); 
 
document.getElementById('res').innerHTML = res;
<div id="res"></div>

+1

に役立つでしょうなぜ私はダウン投票をするのだろうか?私のコードスニペットは、ユーザーの関心事を正確に解決し、問題を解決します。 –

+0

** greedy **モードは使用しないでください。 OPの要求に従って、[[TITLE] name [] "'は '' name "'を返すべきです。 – Leo

+0

@レオ、私は条件が満たされることができるのだろうか** OPはまた '[非常に多くの名前] [テスト] []' 'とても多くの名前'を返すことを考慮して** –

関連する問題