0 0

js exec返回数据的问题3

    var quickExpro = /^[^<]*(<(.|\s)+>)[^>]*$|^#([\w-]+)$/;
    var math = quickExpro.exec("#er");
    返回的内容为啥是#er , , ,er
    math[1],math[2]为啥为'' ,math[3]为啥为er
    不是特别懂它匹配字符串生成数组的方式

问题补充:
p2227 写道
math[0]返回的是整个正则对字符的匹配这个不用解释了
这个正则里面有三对(),所match[i]依次返回这三个()里面的正则对字符的匹配,这叫“分组”
另外(<(.|\s)+>)是一对嵌套的(),所以里面的那对()会返回跟()右边的字符匹配前最后一个放进堆栈的字符,后面这段话你不理解也没所谓的,或者你quickExpro.exec("<er>")仔细分析结果吧


明白了,非常谢谢
2011年11月11日 16:54

2个答案 按时间排序 按投票排序

0 0

问题出在你的表达示的()上,有了(),表示正则表达示有了一个子表达示
如果 exec() 找到了匹配的文本,则返回一个结果数组。否则,返回 null。此数组的第 0 个元素是与正则表达式相匹配的文本,第 1 个元素是与 RegExpObject 的第 1 个子表达式相匹配的文本(如果有的话),第 2 个元素是与 RegExpObject 的第 2 个子表达式相匹配的文本(如果有的话),以此类推.
由于有三个子表达示,所以返回的数组的长度是4,math[1],math[2]分别是子表达式(<(.|\s)+>)和(.|\s)+相匹配的,因为没有匹配所以是'',最后一个子表达式是([\w-]+)在#er中匹配的是er,所以最后一个输出的是er。

2011年11月16日 16:03
0 0

math[0]返回的是整个正则对字符的匹配这个不用解释了
这个正则里面有三对(),所match[i]依次返回这三个()里面的正则对字符的匹配,这叫“分组”
另外(<(.|\s)+>)是一对嵌套的(),所以里面的那对()会返回跟()右边的字符匹配前最后一个放进堆栈的字符,后面这段话你不理解也没所谓的,或者你quickExpro.exec("<er>")仔细分析结果吧

2011年11月13日 18:16

相关推荐

    js分段请求导出exec了

    在本场景中,"js分段请求导出exec了"这个标题可能指的是一个JavaScript实现的分段请求技术,用于处理大文件的导出,特别是Excel文件。这种技术通常用于优化用户体验,因为一次性下载大文件可能会导致浏览器阻塞或...

    前端开源库-exec

    这就是`exec`函数的作用,它允许我们在JavaScript中安全地调用具有`exec`功能的子进程。`exec`是Node.js中的一个核心模块`child_process`的一部分,用于执行命令行命令并获取其输出。 `child_process.exec`方法接收...

    js正则表达式中exec用法实例

    JavaScript中的正则表达式是一种强大的文本处理工具,它允许程序员编写用于文本搜索和替换的特定模式。...在实际的JavaScript编程中,合理运用exec方法可以帮助开发者高效地处理文本数据,提高程序的性能和效率。

    js的正则test,match,exec详细解析.docx

    在JavaScript中,有三个主要的正则方法:`test()`、`match()`和`exec()`,它们各自有不同的用途和行为。 1. **`test()`方法**: - `test()`用于测试一个字符串是否符合某个正则表达式的模式。它返回一个布尔值,...

    js正则表达exec与match的区别说明

    文章的主要内容是介绍JavaScript中正则表达式的两个常用方法exec和match的区别。对于经常需要处理文本匹配和数据提取的...掌握exec和match的区别,可以让我们更高效地利用JavaScript进行复杂的文本处理和数据提取任务。

    JavaScript正则表达式exec/g实现多次循环用法示例

    循环会一直执行,直到re.exec返回null,即没有更多的匹配项为止。 这里还提到了两个非常有用的在线工具,分别是正则表达式在线测试工具和正则表达式在线生成工具。这些工具可以帮助开发者测试和生成正则表达式,而...

    关于IE的RegExp.exec的问题

    在现代JavaScript开发中,为了确保跨浏览器的一致性,建议在使用exec方法时,不要依赖于lastIndex属性,或者在IE环境下针对正则表达式创建新的RegExp实例以避免潜在的lastIndex问题。另外,对于全局匹配,可以考虑...

    Node.js-exec-file-sync-Node.js0.12childProcess.execFileSync()ponyfill

    `childProcess.execFileSync()`方法的工作原理是同步地执行一个外部可执行文件,并返回一个包含命令输出的数据对象。它接受多个参数,包括命令、命令选项以及环境变量等。例如,你可以用它来执行系统命令如`ls`或`...

    javascript常用数据校验正则表达式

    2. `exec()`:执行一个搜索匹配,并返回一个结果数组,或`null`。 3. `match()`:在字符串中查找与正则表达式匹配的部分,返回一个数组。 4. `search()`:查找字符串中首次出现正则表达式的地方,返回索引值,或`-1`...

    JavaScript中exec函数用法实例分析

    JavaScript中的exec函数是正则表达式对象(RegExp)的一个方法,用于在字符串中执行查找,并返回一个数组作为匹配结果。这个方法能够用来捕获和处理字符串中的特定模式,非常适用于文本处理和验证等场景。 在详细...

    exec-async:返回一个带有 shell 命令结果的 promise

    `exec-async`就是这样一款库,它提供了一个简单的方法来异步执行shell命令,并返回一个Promise,使得我们可以方便地在Node.js环境中利用Promise的链式调用来处理命令的执行结果。 `exec-async`的核心功能是使用Node...

    async-exec:async-exec 子进程异步逻辑执行框架

    `async-exec`是一个基于Node.js的子进程异步逻辑执行框架,主要针对JavaScript环境设计,旨在帮助开发者更高效地管理子进程的异步操作。在处理复杂的并发任务或者需要利用多核CPU资源时,该框架能提供良好的解决方案...

    SQL自动生成JSON数据.docx

    最后,使用EXEC函数来执行动态生成的SQL语句,并将查询结果作为JSON数据返回。 三、存储JSON数据到数据表中 将生成的JSON数据存储到数据表中,可以使用INSERT INTO语句来将JSON数据插入到指定的数据表中。 例如:...

    JavaScript Cheat Sheet - JS小抄-快速查看

    JavaScript中的正则表达式对象 RegExp 提供了compile()、exec()、test()等方法,用于编译正则表达式、执行匹配和测试字符串是否符合模式。正则表达式的修饰符包括全局搜索标志"g"、不区分大小写标志"i"和多行标志"m...

    在JavaScript的正则表达式中使用exec&#40;&#41;方法

    4. 当使用exec方法和正则表达式处理大量数据时,应考虑性能影响,避免频繁调用exec方法造成性能问题。 总结来说,JavaScript中的exec方法是处理字符串时不可或缺的工具,它提供了一种灵活且强大的方式来在字符串中...

    javascript常用正则表达式合集.pdf

    以上是JavaScript中常见的一些正则表达式实例,它们在实际编程中常用于数据验证,确保用户输入的数据格式正确,提高应用的安全性和用户体验。掌握这些正则表达式,能够帮助开发者更有效地处理字符串数据。

    如何基于java或js获取URL返回状态码

    // 返回数据流,不直接输出 curl_setopt($curl, CURLOPT_TIMEOUT, 30); // 超时时长,单位秒 curl_exec($curl); $rtn = curl_getinfo($curl, CURLINFO_HTTP_CODE); // 获取HTTP状态码 curl_close($curl); ...

    js正则表达式笔记,直接运行

    标题与描述中的“js正则表达式笔记,直接运行”明确指出这是一份关于JavaScript正则表达式的笔记,其中包含了可以直接执行的代码示例。正则表达式在编程中是一种非常强大的工具,用于处理字符串模式匹配、搜索和替换...

Global site tag (gtag.js) - Google Analytics