2017-01-13 27 views
0

パターンにマッチする文字列から部分文字列を得る方法はありますか? 私はこの文字列を持っていますJavaScriptの文字列から部分文字列をパターンで取得する

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html> 
     <head> 
      <meta http-equiv="content-type" content="text/html; charset=utf-8"/> 
     </head> 
     <body bgcolor="#efefef" 
      style="background: #efefef; margin: 0; padding: 0; width: 100%; -webkit-font-smoothing: antialiased; font-family: 'Roboto', sans-serif; font-weight: 400;"> 
      <table width="100%" cellspacing="0" cellpadding="0" border="0" style="width: 600px; margin: 0 auto; padding: 0;"> 
       <tbody> 
        <tr> 
         <td width="100%"> 
          <table width="100%" cellspacing="0" cellpadding="0" border="0" 
       style="width: 600px; margin: 0 auto; padding: 20px 0 12px 0;"> 
           <tbody> 
            <tr> 
             <td width="50%">Webmail App 
             </td> 
             <td width="50%"> 
              <div style="color: #5d5d5d; font-size: 14px; font-weight: bold; letter-spacing: 1px; font-family: 'Helvetica Neue',Arial,Helvetica,sans-serif; text-align: right;"> 
               {{current_date}} 
              </div> 
             </td> 
            </tr> 
           </tbody> 
          </table> 
          <div style="width: 600px; margin: 0 auto; border: 1px solid #CCCCCC; background-color: #FFFFFF;"> 
           <div style="background-color: #0065b2; color: #fbfbfb; font-size: 18px; font-weight: bold; padding: 16px 12px 16px 12px; font-family: 'Helvetica Neue',Arial,Helvetica,sans-serif;"> 
            Application for {{application_position}} 
           </div> 
           <div style="background-color: #4676fd; color: #efefef; font-size: 16px; font-weight: bold; letter-spacing: 1px; padding: 16px 12px; border-bottom: 1px solid #CCCCCC; font-family: 'Helvetica Neue',Arial,Helvetica,sans-serif;"> 
            {{applicant_name}} 
           </div> 
           <div style="background-color: #fffff; color: #0E2334; font-size: 18px; font-weight: bold; padding: 24px 12px 8px 12px; font-family: 'Helvetica Neue',Arial,Helvetica,sans-serif;"> 
            this is a sample message. 
           </div> 
           <div style="background-color: #fffff; color: #0E2334; text-align: left;"> 
           </div> 
           <div style="background-color: #fffff; color: #0E2334; text-align: left; padding: 24px 12px 8px 12px; font-size: 13px; font-family: 'Helvetica Neue',Arial,Helvetica,sans-serif; letter-spacing: 0.5px;"> 
            Thanks,<br/>{{staff_name}}</div> 
           </div> 
           <div style="width: 600px; margin: 0 auto; padding: 0 0 20px 0;"><p 
       style="color: #666; font-size: 11px; letter-spacing: 0.5px; font-weight: 500; text-decoration: none; font-family: 'Helvetica Neue',Arial,Helvetica,sans-serif;"> 
            Thank you for using Webmail<br/> </div> 
          </td> 
         </tr> 
        </tbody> 
       </table> 
      </body> 
     </html> 

これは文字列です。私は電子メールテンプレートでそれを使用しました。どのように私はすべての

{{something_code}} 

、とその試合をサブストリング得ることができるので、出力は、これらの値は動的で

["current_date","application_position","applicant_name","staff_name"] 

、の値を持つ配列でなければなりません。それはテンプレートにいくつの特殊コードがあるかによって異なります。

また、値は一意である必要があります。

フィルタ機能を試しましたが、機能しませんでした。どうしたらいいですか?任意のサンプルは、JavaScriptでそれを行うには?

答えて

0

と仮定すると、あなたの文字列がhtml_str

var results = html_str.match(/[^{{}}]+(?=\})/g);

resultsという名前の変数をwithingされることは配列となります。あなたが投稿したhtmlのためresultsになります["current_date","application_position","applicant_name","staff_name"]

+0

これは高速です。しかし私は私の問題の解決策を見つけました。 htmlのすべての特別なコードを取得する代わりに、私は部分文字列を置き換えます。だから私はマッチ値を取得する必要はありません。しかし答えに感謝します。 – JMA

関連する問題