在 Javascript 中的正则表达式上运行正则表达式替换
Run a RegEx replace on a RegEx in Javascript
我有正则表达式:
var reValid = /^'s*(?:'[^''']*(?:''['S's][^''']*)*'|[^,''s'']*(?:'s+[^,''s'']+)*)'s*(?:,'s*(?:'[^''']*(?:''['S's][^''']*)*'|[^,''s'']*(?:'s+[^,''s'']+)*)'s*)*$/;
这验证了 CSV 文件,但我希望能够使用任何分隔符修改分隔符 (')。
是否可以在正则表达式上运行正则表达式替换?
示例 - 使用反引号 (') 作为分隔符:
var reValid = /^'s*(?:`[^`'']*(?:''['S's][^`'']*)*`|[^,`'s'']*(?:'s+[^,`'s'']+)*)'s*(?:,'s*(?:`[^`'']*(?:''['S's][^`'']*)*`|[^,`'s'']*(?:'s+[^,`'s'']+)*)'s*)*$/;
当然,只需使用 source 属性将表达式作为字符串获取,进行替换,然后使用新表达式创建一个新的 RegExp 对象:
var reValid = /^'s*(?:'[^''']*(?:''['S's][^''']*)*'|[^,''s'']*(?:'s+[^,''s'']+)*)'s*(?:,'s*(?:'[^''']*(?:''['S's][^''']*)*'|[^,''s'']*(?:'s+[^,''s'']+)*)'s*)*$/;
reValid = RegExp(reValid.source.replace(/'/g, '`'));
相关文章:
- 如何用正则表达式替换特定的JavaScript注释
- 用特定的javascript正则表达式替换每个单词
- 如何用JavaScript正则表达式替换href中的所有内容
- 使用 JavaScript 中的正则表达式替换大文本中两个字符之间的每个出现的字符串
- Javascript 正则表达式替换为转义的反斜杠
- 使用 JavaScript 正则表达式替换文本中的类似字符串
- 在特殊标记之外使用 JavaScript 正则表达式替换
- 如何使用 javascript 在正则表达式替换中表示大括号
- 在字符串 JavaScript 中使用正则表达式替换
- 用Javascript正则表达式替换iframe到可点击的YouTube链接
- JS正则表达式替换编号
- 正则表达式:替换javascript中的字符串
- Javascript正则表达式替换以转换文本
- 正则表达式替换为插入符号
- 在javascript中用正则表达式替换空格
- 用正则表达式替换javascript
- 使用 JavaScript 正则表达式替换和递增整数值
- JS 正则表达式:替换字符串中的所有数字
- 正则表达式替换
- JS - 正则表达式替换在一次调用中发生多次,如何让它运行一次