t = `
企业要求员工
“工作要有责任
`
t = t.replace(/([\u4e00-\u9fa5_a-zA-Z0-9])+?(\n|\r|\r\n)+?([\u4e00-\u9fa5_a-zA-Z0-9])+?/gi,'$1<br />$3');
为什么匹配不了,上面是从文本里面粘贴的,自带换行符,为什么替换不了呢
t = `
企业要求员工
“工作要有责任
`
t = t.replace(/([\u4e00-\u9fa5_a-zA-Z0-9])+?(\n|\r|\r\n)+?([\u4e00-\u9fa5_a-zA-Z0-9])+?/gi,'$1<br />$3');
为什么匹配不了,上面是从文本里面粘贴的,自带换行符,为什么替换不了呢
不太懂你的意思,你目前的正则本身就有问题,你要是按这种模式去匹配然后生成对应的模式,那么开头的空行和结尾的空行你是匹配不到的,直接向楼上所说的,去替换空行不就好了吗. 如果你非要按照模式去匹配那么
t = t.replace(/(n|r|rn|s)([u4e00-u9fa5_a-zA-Z0-9])(n|r|rn|s)([u4e00-u9fa5_a-zA-Z0-9])/gi,'$2$4') 写全了就好了(不知为何星号没有打上去,看图片吧);
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答897 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
你的问题就是
+?
没有识别出来,+
代表1次或n次,?
代表0次或者1次,但是你的这个+?
就有问题了。如果你想代表0次或者n次,你可以用*
。但是我觉得如果你只是替换掉换行,没必要去匹配文字,直接
t = t.replace(/(\n|\r|\r\n)/g, '<br />')