javascript - 在 JavaScript 中使用多行正则表达式模式来指示输入字符串的开头是不可能的吗?

标签 javascript regex multiline

在 JavaScript 中,multiline flag改变 ^$ 的含义:

Treat beginning and end characters (^ and $) as working over multiple lines (i.e., match the beginning or end of each line (delimited by \n or \r), not only the very beginning or end of the whole input string)

好吧,除了这些字符之外,是否有任何其他方法来标记输入字符串的开头?如何指示我希望我的多行模式匹配输入字符串的开头?

我知道我可以使用 exec 的返回值的 index 属性检查匹配的索引,但是有没有办法阻止正则表达式引擎搜索整个字符串放在首位?

最佳答案

不,^ 是唯一的 built-in assertion测试输入开始,正如您所说,它的行为由 multiline 标志修改。

您可以将一些唯一的字符串放在您正在测试的字符串的开头,也可以放在您的正则表达式的开头,但这有点麻烦。在正常情况下,如您所说,您将测试返回匹配项的索引。

关于javascript - 在 JavaScript 中使用多行正则表达式模式来指示输入字符串的开头是不可能的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9648346/

相关文章:

javascript - 在 Javascript 中标记为 while 循环

java - 从字符串中的金额中提取数字

python - 如何删除 Python 三重引号多行字符串的额外缩进?

javascript - D3 带过渡的多线图

string - 如何在 node.js 中执行多行字符串?

javascript - Google Drive Web API 保存和下载 pdf

当文本框以编程方式更改时的 javascript 触发事件

javascript - Angular2 - 为什么不能在属性名称中使用破折号或其他特殊字符

c# - 为什么正则表达式没有按预期工作?

Javascript Regex - 捕获特定域或没有域的链接