我的正则表达式模式不起作用
My Regular Expression pattern does not work
我正在尝试在javascript中为以下模式编写正则表达式,但它不起作用。请问有人可以建议吗?
模式:",anyONELetter,"
示例字符串
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)+,*/gi
并替换为一个,
.查看正则表达式演示
(?:,[a-z]'b)+,*
匹配以下一个或多个序列:
-
,
逗号后跟 -
[a-z]'b
- 一个 ASCII 字母(作为一个完整的单词,因为它后面有'b
)
后跟零个或多个逗号 ( ,*
)。
然后,您需要使用另一个正则表达式修剪字符串中的尾随,
符号:
.replace(/,+$/, '')
,+$
匹配字符串末尾的一个或多个逗号($
断言字符串末尾的位置,因此字符串内的逗号将保持不变)。
JS演示:
var s = 'James Yashiro,a,b,c, Dean J Loza,a,b';
var res = s.replace(/(?:,[a-z]'b)+,*/gi, ',').replace(/,+$/, '');
document.write(res);
我认为你应该尝试这样的正则表达式:
/(,[a-z],*?)/gi
并替换为空字符串。
例:
var test = 'James Yashiro,a,b,c, Dean J Loza,a,b';
var result = test.replace(/(,[a-z],*?)/gi, '');
document.write(result);
相关文章:
- Ajax模式下的Jquery Select2 V4在IE9中不起作用
- Angular$scope在模式窗口内不起作用
- jQuery日期选择器在Codeigniter和Bootsrap模式表单中不起作用
- 脚本在我的引导模式中不起作用
- 谷歌浏览器模式正则表达式在使用setCustomValidity动态创建表单时不起作用
- 猫鼬混合模式不起作用
- 模式弹出窗口内的按钮点击不起作用
- ng模式验证在safari中不起作用
- 我试图使用引导模式类来制作一个弹出注册表单,但弹出没有'不起作用
- 使用引导模式形式的ADD不起作用
- 触摸事件在模式弹出窗口上不起作用
- 代码仅在调试器模式下工作,断点位于 Consol.log否则不起作用
- KnockoutJS - 引导程序 3 模式绑定不起作用
- 火狐浏览器 iframe 设计模式不起作用
- ASP.NET MVC 验证在引导模式上不起作用
- 简单的模式不起作用
- 关闭图标在使用 AngularJs 的引导模式上不起作用
- JavaScript 模块模式不起作用
- jQuery 引导选项卡在自定义模式中不起作用(不是引导模式,而是我自己的版本)
- 匹配模式不起作用