var $a = '%windir%\\tetxt.txt';
var $r = /%[^%]+%/;
var $fr = 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ACPI\Enum';
var $result = $a.replace($r,$fr);

解决方案 »

  1.   

    额,版主又见面了.我先说一下什么叫注册表路径?注册表路径表达清楚一点应该叫注册表某一个键的路径。这个键和文件系统中的目录的差不多,因为注册表和文件系统都是目录系统。上面给出的例子
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ACPI\Enum
    其实就是Enum这个键的路径。那同文件路径的那个帖子,我就是需要一个正则表达式判断一个给定的注册表键的路径的格式是否合法。
    这个正则表达式应该比较简单。只需要保证路径的开头必须以HKEY_CLASSES_ROOT,HKEY_CURRENT_USER,HKEY_LOCAL_MACHINE,HKEY_USERS,HKEY_CURRENT_CONFIG这几个字符串中的一个就可以了,后面的部分跟验证文件路径一样的
      

  2.   

    regex ="^(HKEY_CLASSES_ROOT|HKEY_CURRENT_USER|HKEY_LOCAL_MACHINE|HKEY_USERS|HKEY_CURRENT_CONFIG).*"
      

  3.   

        var rx = /^(HKEY_CLASSES_ROOT|HKEY_CURRENT_USER|HKEY_LOCAL_MACHINE|HKEY_USERS|HKEY_CURRENT_CONFIG).+/;//不区分大小写在最后一个/改为/i
        alert(rx.test('HKEY_CLASSES_ROOT/abc  /afe'))
        alert(rx.test('%temp%\\text.aa.txt'))