0

次のパターンで単語を選択するアプリケーションを開発しようとしています: ([az] * \. [az] *)、次の JavaScript 関数を作成し、XUL Explorer で実行しました。

<?xml-stylesheet href="chrome://global/skin/" type="text/css"?>
<window id="yourwindow"
        xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"
        xmlns:html="http://www.w3.org/1999/xhtml"
        xmlns:h="http://www.w3.org/1999/xhtml">
  <button label="click" oncommand="fpatt()" />

  <script type="text/javascript"> <![CDATA[ // put some js code here
    function fpatt(){
      var text = "supermercardo, tooc hip.ermercadotoooooc, mercado"; 
      var patt = "([a-z]*\.[a-z]*)"; 
      alert( text.match( patt ) );
    }
  ]]> </script>
</window>

結果はアラートに表示されます: supermercardo,, supermercardo,; 選択したサイトで同じスクリプトを実行すると、結果は regexpal.com: になりip.mercadotooooocます。

4

1 に答える 1

1

"([a-z]*\.[a-z]*)"正規表現ではありません - 文字列です。In a string\.は とまったく同じ.です。正規表現を正規表現として解釈するには、正規表現リテラルとして指定する必要があります。

var patt = /([a-z]*\.[a-z]*)/;

この変更を加えたコードについては、 http://jsfiddle.net/N6qj7/を参照してください (そして、これは XUL とはまったく関係なく、古いプレーンな JavaScript です)。

ドキュメンテーション

于 2012-05-18T13:31:10.030 に答える