【发布时间】:2021-01-18 05:53:09
【问题描述】:
我正在尝试使用 RegEx 定位破折号或连字符。不过,这对于我如何使用它似乎是不可能的。我在网上找到的其他答案似乎与我的情况不符。
场景:
如果我点击一个按钮,这个脚本会替换指定的数字+字母。它工作正常,直到现在我要在列表中包含一个连字符。
请查看下面使用的正则表达式,代码如下:
const mapper = new Map();
mapper.set("10th", "11th");
mapper.set("-", "Deleted");
mapper.set("63", "Deleted");
mapper.set("63-5", "Deleted");
mapper.set("121AA", "95");
function fixtext() {
const elm = document.getElementById("textarea1");
if (elm) {
elm.value = elm.value
.replace(
/\b\d+(?:A|B|C|D|E|F|G|H|I|J|K|L|M|N|O|P|Q|R|S|T|U|V|W|X|Y|Z|AA|BB|CC|DD|EE|FF|GG|HH|II|JJ|KK|LL|MM|NN|OO|PP|QQ|RR|SS|TT|UU|VV|WW|XX|YY|ZZ|d|th|st|nd)?\b/g,
m => mapper.has(m) ? mapper.get(m) : m
);
}
}
<textarea id="textarea1" rows="4" cols="50">(10th ed), Pretrial Proceedings sample 121AA and - and 63 63-5</textarea>
<button class="nbtngreen" onclick="fixtext()">Update</button>
对于63-5,应该整体改,而不是Deleted-5
我尝试使用我在网上看到的几个 RegEx 来转义或匹配它。以下是其中一些:
[]-]
[a-zA-Z0-9!$* \t\r\n\-]
[-]
[abc-]
这些都不适合我,或者我不明白这次如何让它发挥作用。
我也很想缩短我的 RegEx,但这也是问题所在。 [A-z] 或类似的东西也不起作用。
非常感谢有关如何解决此问题的任何帮助。提前致谢!
【问题讨论】:
标签: javascript html regex