Javascript 谷歌应用程序脚本regex手机

Javascript 谷歌应用程序脚本regex手机,javascript,regex,google-apps-script,Javascript,Regex,Google Apps Script,有这样的代码: 此正则表达式的问题it此部分: .match(/Phone:^((8|\+)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$/); .match(/Comment:\s*([\s\S]+)(?=Email|Phone)/); 电话里什么也不回。。很多事情都是真的,但最终什么都不起作用。可能的掩码是: 12361234567 8029123456 +12361234567 +375 29 123 45 67 4(123)123-45-67 1

有这样的代码:

此正则表达式的问题it此部分:

.match(/Phone:^((8|\+)[\- ]?)?(\(?\d{3}\)?[\- ]?)?[\d\- ]{7,10}$/);
.match(/Comment:\s*([\s\S]+)(?=Email|Phone)/);
电话里什么也不回。。很多事情都是真的,但最终什么都不起作用。可能的掩码是:

12361234567
8029123456
+12361234567
+375 29 123 45 67
4(123)123-45-67
123-45-67
9261234567
评论适用于:

Comment: ТestABC1234567 Ads
Phone: +313239084
or
Comment: ТestABC1234567 Ads
Email: asd@gmail.com
但当模板像这样时:

Comment: ТestABC1234567 Ads
Phone: +313239084
Email: asd@gmail.com
它返回:

ТestABC1234567 Ads
Phone: +313239084
如果您能告诉我如何解决这个问题,我将不胜感激

/Phone:\s*((?:[48+][- ]?)?(?:\(?\d{3}\)?[- ]?)?[\d -]{7,10})/

我添加了
4
,以替代开头的内容(其中一个数字以
4
开头)。因此,我使用了
[48+]
(或者
4
或者
8
或者
+

我删除了不必要的转义符号,不需要在字符类的初始或最终位置转义连字符

我删除了冗余捕获组或将其转换为非捕获组,并设置了一个存储实际数量的所需捕获组(它将是组1)


我还删除了锚,它们只能与
/m
修饰符一起使用,因为输入是多行的。但是,可能存在前导和尾随空格。如果您真的想保留
^
$
,请尝试
/^\s*电话:\s*((?:[48+][-]?)(?:\(?\d{3}\)?[-]?)?[\d-]{7,10})\s*/m
,因为Wiktor已经解决了您的第一个问题,下面是您的第二个问题的可能解决方案:

/Comment:\s*([\s\S]+?)(?=(?:Phone|Email))/
但是,如果您的评论中出现了单词Email或Phone,您将需要使用以下内容,假设
Phone
Email
条目总是以换行符开头:

/Comment:\s*([\s\S]+?)(?=(?:\nPhone|\nEmail))/

var strs=[
'注释:注释类型1\\estABC1234567 Ads\n\
电邮:asd@gmail.com\n\
电话:+313239084',
'注释:注释类型2\\estABC1234567 Ads\n\
电话:+313239084\n\
电邮:asd@gmail.com',
'注释:注释类型3\'estABC1234567 Ads\n\
电话:+313239084',
'注释:注释类型4\\estABC1234567 Ads\n\
电邮:asd@gmail.com'
];
var re=/Comment:\s*([\s\s]+?)(?=(?:电话|电子邮件))/;
strs.forEach(函数(str){
document.body.insertAdjacentHTML('beforeend',str.match(re).slice(1)+'
');
});号码前是否有
电话:
?如果是,那么您肯定不需要在电话正则表达式中使用
^
。谢谢!!适用于所有变体,也适用于regex101.com,现在可以在这里测试所有内容了。)哇,感谢您快速详细的回答!皮蒂,这不能选择两个有助于解决问题的答案problem@Twil:没问题,我会在timolawl的销售代表@Twil:不用担心。你积极发表评论并接受答案,这一事实使你比本网站上的大多数用户领先了好几英里,这非常好。@WiktorStribiżew你真是太好了!我会报答你的。你的回答一直很有启发性。