Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我的正则表达式模式不起作用_Javascript_Regex - Fatal编程技术网

Javascript 我的正则表达式模式不起作用

Javascript 我的正则表达式模式不起作用,javascript,regex,Javascript,Regex,我试图用javascript为以下模式编写正则表达式,但它不起作用。有人能给我建议吗 图案:,任意字母 样本串 James Yashiro,a,b,c Dean J Loza,a,b 所需字符串: James Yashiro, Andrew J Loza 我的javascript: var string = string.replace(/[,^a-z{1},]/gi, ''); 一对未装饰的[…]内的一切都被视为一个符号。[\s*]匹配1个空格或*字符。您的[,^a-z{1},]正则表达

我试图用javascript为以下模式编写正则表达式,但它不起作用。有人能给我建议吗

图案:,任意字母

样本串

James Yashiro,a,b,c Dean J Loza,a,b
所需字符串:

James Yashiro, Andrew J Loza
我的javascript:

var string = string.replace(/[,^a-z{1},]/gi, '');

一对未装饰的[…]内的一切都被视为一个符号。[\s*]匹配1个空格或*字符。您的[,^a-z{1},]正则表达式与1个符号匹配,该符号是ASCII字母{,或^,{,或1,或}或逗号

您需要以下正则表达式将所有,+独立字母模式替换为,:

并替换为一个,。见

?:,[a-z]\b+,*与以下一个或多个序列匹配:

,逗号后跟 [a-z]\b-一个ASCII字母作为一个单词,因为它后面有\b 后跟零个或多个逗号,*

然后,需要使用另一个正则表达式从字符串中修剪尾随符号:

.replace(/,+$/, '')
+$匹配字符串末尾的一个或多个逗号$断言字符串末尾的位置,因此字符串中的逗号将保持不变

JS演示:

变量s=‘詹姆斯·亚希罗,a,b,c,迪安·J·洛扎,a,b’; var res=s.replace/?:,[a-z]\b+,*/gi',,'.replace/,+$/;
文件编写者 我想你应该试试这样的正则表达式:

/(,[a-z],*?)/gi
并替换为空字符串

例如:

var测试='James Yashiro,a,b,c,Dean J Loza,a,b'; var结果=测试。替换/,[a-z],*?/gi;
document.writeresult;在正则表达式中混合字符类和字符序列。试试/,[a-z],/gi。请提供用于测试/演示的示例字符串和预期输出。请参见上述要求的编辑如何从James Yashiro,a,b,c Dean J Loza,a,b获得Hanako Yashiro',Andrew J Loza?没有更多的澄清是不可能的。为什么必须用花子取代詹姆斯?一定有名单。对不起,弄错了。更正请阅读regexps.perfect上的基本文档。非常感谢。这是一个严重的编码巫毒。
/(,[a-z],*?)/gi