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]*)"不是正则表达式 - 它是一个字符串。并且在一个字符串\.中是完全一样的.。要将您的正则表达式解释为正则表达式,您应该将其指定为正则表达式文字:

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

有关此更改的代码,请参见http://jsfiddle.net/N6qj7/(并且 - 不,这与 XUL 完全无关,只是旧的纯 JavaScript)。

文档

于 2012-05-18T13:31:10.030 回答