好的,我的客户可以构建一个文本,并在该文本中输入指定的短代码,用数据库中的数据替换。
例如:
[f], thanks for supporting our organization. Tap here: [u] to enter your donation.
将以
发送Jamie, thanks for supporting our organization. Tap here: https://cbo.io/oh98eI to enter your donation.
我需要能够在输入时查找并更正输入中的某些错误。具体来说,如果类型[u]后跟任何字符但空格我希望能够自动为它们添加空格。我以为我有这个。
if (msg.indexOf('[u]') >= 0) {
if (msg.match(/\[u\][^\s]/g).length) {
vmsg = msg.replace('[u]', '[u] ');
msg_len = msg.length;
v$('#message_text').val(msg);
}
}
但我看到的问题是,只要我将[u].
更改为[u] .
Javascript现在就会呈现"未捕获的TypeError:无法读取属性' length' of null"因为msg.match
等的第二个if语句
我还有另一张类似于这张的支票,如果我同时使用它们,则第二张支票因错误而无法识别。如何编写它以便它不会导致此错误。
我遇到的下一个问题是,如果我想要使用相同的短代码两次,并且我尝试在第二个之后输入一个字符,则替换仅替换第一个匹配项,以便我最终得到[u]
和第一个和第二个空间的空间仍为[u].
,没有任何变化。是否有办法获得它,以便它将取代具有差异的那个而不是那个可以的。
答案 0 :(得分:0)
无需使用Z to A
。当没有匹配时,Other
返回.length
,并且当匹配时返回非空数组,因此只测试返回值本身而不是其长度。也没有必要使用match()
修饰符;你只关心至少有一个匹配,你不需要返回所有匹配(因为你实际上并没有使用返回的值)。
null
和g
可以简化为if (msg.match(/\[u\]\S/)) {
。