javascript - 使用 javascript 更改字符串

标签 javascript regex string

我正在使用以下正则表达式检查字符串:/^[SE]*[\s]*[0-9]{3}[\s\-]*[0-9]{2 }$/。这总共允许 9 种不同的格式,分别是:XXXXX、XXX-XX、XXX XX、SEXXXXX、SEXXX-XX、SEXXX XX、SE XXXXX、SE XXX-XX 和 SE XXX XX(X:s 是 0- 9).在检查 9 种有效格式之一后,如何将格式更改为 XXXXX?

我已经阅读了许多有关 string.replace() 方法的其他线程,但我似乎无法使其工作。到目前为止,这是我的代码:

        var pcValue = postalCode.value;
        var format = /^[SE]*[\s]*[0-9]{3}[\s\-]*[0-9]{2}$/;

        if (format.test(pcValue) === true) {
            pcValue = pcValue.replace(/\[SE]*[\s]*[\s\-]*$/, /^[0-9]{5}$/);
        }

它给我的是一个带有 /^[0-9]{5}$/ 的字符串,而不是我想要的 XXXXX 格式。

最佳答案

你可以这样做:

var format = /^([SE]*)\s*(\d{3})[\s\-]*(\d\d)$/;
if (format.test(pcValue)) {
    pcValue = pcValue.replace(format, "$2$3");
}

请注意,如果 test 返回 true 时除了替换之外不执行任何其他操作,那么您根本不必测试,只需执行替换即可。

关于javascript - 使用 javascript 更改字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20654661/

相关文章:

java - 从 TextField 获取的字符串在 J2ME 中无法转换为小写

javascript - 即使一切正常,If 语句仍无法正常工作

javascript - 调试在 Adob​​e Air 中运行的 Javascript

javascript - 如何检索单选按钮的值并在 codeigniter 中插入数据库?

python - 正则表达式搜索返回结果或为空

regex - 正则表达式拆分 : FutureWarning: split() requires a non-empty pattern match

string - 如何在Spock框架中的功能方法名称中添加数字

javascript - 将全局导入模块模式转换为 ES6 模块

c# - 搜索字符串模式

regex - 如何检查字符串是否包含特定字符