var val = "CREATE TABLE `inversion_recharge` (
`ID` bigint(20) NOT NULL AUTO_INCREMENT,
`orderno` char(15) NOT NULL DEFAULT '' COMMENT '單號',
`itemcount` tinyint(4) NOT NULL DEFAULT '0' COMMENT '充值人數',
`itemmoney` int(11) NOT NULL DEFAULT '0' COMMENT '合計金額',
`type` char(1) NOT NULL DEFAULT '' COMMENT '充值型別:1預充 2實充',
`isall` char(1) NOT NULL DEFAULT '' COMMENT '是否全額:1非全額 2全額',
`remark` varchar(200) NOT NULL DEFAULT '' COMMENT '備注',
`reviewdate` char(8) NOT NULL DEFAULT '' COMMENT '審核日期',
`reviewtime` char(6) NOT NULL DEFAULT '' COMMENT '審核時間',
`status` char(1) NOT NULL DEFAULT '' COMMENT '回款狀態:1未回款 2已回款 3部分回款',
`reviewstatus` char(1) NOT NULL DEFAULT '1' COMMENT '審批狀態:1待審核 2已通過 3已拒絕 4已撤回',
`datastatus` char(1) NOT NULL DEFAULT '1' COMMENT '資料狀態 0/1 禁用 啟用',
`createuser` bigint(20) NOT NULL DEFAULT '0' COMMENT '創建人',
`createdate` char(8) NOT NULL DEFAULT '' COMMENT '創建日期',
`createtime` char(6) NOT NULL DEFAULT '' COMMENT '創建時間',
`updateuser` bigint(20) NOT NULL DEFAULT '0' COMMENT '更新人',
`updatedate` char(8) NOT NULL DEFAULT '' COMMENT '更新日期',
`updatetime` char(6) NOT NULL DEFAULT '' COMMENT '更新時間',
`syscreatetime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '記錄創建時間',
`sysupdatetime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '記錄最后更新時間',
PRIMARY KEY (`ID`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='代充值'";
var res = val.match(/\`[\w_]+\`\s+[\w_\(\)]+(\s+|\,)/g);
目前結果是這樣:

希望陣列每個元素后面都跟上COMMENT后的內容!
比如第二個元素,希望是這樣:
`orderno` char(15) //單號
注意空格 注意空格 注意空格
uj5u.com熱心網友回復:
\'[\u4e00-\u9fa50-9\s\:]+\'這個可以匹配到comment之后的內容
uj5u.com熱心網友回復:
COMMENT后和行尾的,前的
uj5u.com熱心網友回復:

也沒匹配到~
uj5u.com熱心網友回復:
要得到的是:`orderno` char(15) //單號 沒空格,沒單引號?那你需要先行replace以后再match。
正則一直是弱項,寫不出高質量的,但能“堆”出來
uj5u.com熱心網友回復:
頂一下!頂一下!uj5u.com熱心網友回復:
var val = `CREATE TABLE \`inversion_recharge\` (
\`ID\` bigint(20) NOT NULL AUTO_INCREMENT,
\`orderno\` char(15) NOT NULL DEFAULT '' COMMENT '單號',
\`itemcount\` tinyint(4) NOT NULL DEFAULT '0' COMMENT '充值人數',
\`itemmoney\` int(11) NOT NULL DEFAULT '0' COMMENT '合計金額',
\`type\` char(1) NOT NULL DEFAULT '' COMMENT '充值型別:1預充 2實充',
\`isall\` char(1) NOT NULL DEFAULT '' COMMENT '是否全額:1非全額 2全額',
\`remark\` varchar(200) NOT NULL DEFAULT '' COMMENT '備注',
\`reviewdate\` char(8) NOT NULL DEFAULT '' COMMENT '審核日期',
\`reviewtime\` char(6) NOT NULL DEFAULT '' COMMENT '審核時間',
\`status\` char(1) NOT NULL DEFAULT '' COMMENT '回款狀態:1未回款 2已回款 3部分回款',
\`reviewstatus\` char(1) NOT NULL DEFAULT '1' COMMENT '審批狀態:1待審核 2已通過 3已拒絕 4已撤回',
\`datastatus\` char(1) NOT NULL DEFAULT '1' COMMENT '資料狀態 0/1 禁用 啟用',
\`createuser\` bigint(20) NOT NULL DEFAULT '0' COMMENT '創建人',
\`createdate\` char(8) NOT NULL DEFAULT '' COMMENT '創建日期',
\`createtime\` char(6) NOT NULL DEFAULT '' COMMENT '創建時間',
\`updateuser\` bigint(20) NOT NULL DEFAULT '0' COMMENT '更新人',
\`updatedate\` char(8) NOT NULL DEFAULT '' COMMENT '更新日期',
\`updatetime\` char(6) NOT NULL DEFAULT '' COMMENT '更新時間',
\`syscreatetime\` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '記錄創建時間',
\`sysupdatetime\` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '記錄最后更新時間',
PRIMARY KEY (\`ID\`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='代充值'`;
var res = [];
val.replace(/(\`\w+\`)\s+([\w\(\)]+)(?:\s+.+?COMMENT\s+'(.+?)')?/g,function ($0,$1,$2,$3) {
res.push($1+" "+$2+ ($3?" //"+$3:""));
return $0;
});
console.log(res);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/229680.html
標籤:JavaScript
上一篇:學習分析如圖代碼
