Javascript正则表达式捕获提供意外结果

Javascript正则表达式捕获提供意外结果,javascript,regex,Javascript,Regex,我正在尝试捕获第一个之前的所有数据。到目前为止,我得到的是 常量regex=/(*)(?=)/g; var s=“Mike_Jones_Jr”; console.log(s.match(regex))您只需使用拆分 注意:-第二个参数是限制最终输出中的元素数量 var s=“Mike_Jones_Jr”; 控制台日志(s.split(“1”)创建一个捕获组((括号之间的某个东西)),该组从行的开头(^)开始,并且是惰性的(*?),然后获取匹配数组中的第二项 const regex=/(^

我正在尝试捕获第一个
之前的所有数据。到目前为止,我得到的是

<代码>常量regex=/(*)(?=)/g; var s=“Mike_Jones_Jr”;
console.log(s.match(regex))
您只需使用
拆分

注意:-第二个参数是限制最终输出中的元素数量

var s=“Mike_Jones_Jr”; 控制台日志(s.split(“1”)创建一个捕获组(
(括号之间的某个东西)
),该组从行的开头(
^
)开始,并且是
惰性的(
*?
),然后获取匹配数组中的第二项

const regex=/(^.*?)
console.log('Mike_Jones_Jr'.match(regex)[1]| |')
console.log(`Mike
_小琼斯“匹配(正则表达式)[1]| |“”)
使用*/

^从字符串的开头开始查看 [^否定_ *提供任意数量的字符

const regex=/^[^33;]*/;
var s=“Mike_Jones_Jr”;

console.log(s.match(regex))很明显,您的期望是错误的。如果您只想在第一个
\uu
之前输入文本,为什么不
s.split(“\u”)[0]
?尝试提高我对正则表达式的理解。
匹配的文档记录如下。为什么需要字符串?
s.substring(0,s.indexOf(“''))
就可以了。如果
是字符串的第一个字符,则第二个版本将失败。没错,我将删除第二个选项。您可以刚刚修复它:
/^[^]*/
。如果字符串中的第一个
\uuu
前面有一个换行符,则该操作将失败。@melpomene OK通过添加
s
标志进行修复。请注意,Firefox、IE或Edge不支持
s
var s = "Mike_Jones_Jr";
console.log(s.split('_')[0]);