次の JavaScript コードを実行すると、たとえば "12 December" が正常に検索されます。
return messageHtmlBody.match(/[1-31]{1,2}(\s)[a-zA-Z]{3,9}/i)[0];
「2012 年 12 月 12 日」を返したいので、次のコードを試してみました。
return messageHtmlBody.match(/[1-31]{1,2}(\s)[a-zA-Z]{3,9}(\s)\d{4}/i)[0];
これは一致を返さなかっただけでなく、コードも正常に実行されませんでした。私も次のことを試しました(2番目の(\ s)文字だけ)、それも実行されませんでした:
return messageHtmlBody.match(/[1-31]{1,2}(\s)[a-zA-Z]{3,9}(\s)/i)[0];
2 番目 (\s) が機能しない理由はありますか? 最初の (\s) は、最初の空白と正常に一致します。検索文字列 100% には文字列 "12 December 2012" が含まれているため、検索は問題になりません。
何か案は?