在 Polymer JS 中验证 gstin 时控制台出错
Error in console while validating gstin in Polymer JS
我有一个 Polymer JS 代码可以验证 GST 识别号:
<dom-module id="gst">
<template>
<div>
<label for="gstid" class="gstlabel">GSTIN</label>
<input type="text" id="gstid" name="gstid" on-submit="gstid_validation(gstid)">
</div>
</template>
<script>
Polymer({
is: 'gst',
gstid_validation: function(gstin) {
var gstin_count = length(gstin);
var pattern = "qr/\d{2}[A-Z]{5}\d{4}[A-Z][A-Z\d]Z[A-Z\d]/";
if (gstin_count !== 15 && gstin !~ pattern) {
return 'Invalid GSTIN';
}
}.
});
</script>
</dom-module>
我在控制台中收到以下错误:
Uncaught SyntaxError: Unexpected token !
有人可以帮忙吗?
提前致谢
正如我在评论中所写,这显然是你的 if 语句的第二部分 gstin !~ pattern
。
假设您想要匹配正则表达式,正确的语法应该是这样的:
if (gstin_count !== 15 && pattern.text(gstin))
请注意,您的代码还有其他几个问题。仅举几例:
- 您的
pattern
变量包含一个字符串,而不是正则表达式。对于正则表达式,您不会使用引号作为分隔符。修饰符也放在正则表达式的末尾。
- 在 JS 中没有
length
函数,所以如果你没有自定义
最有可能实现你想要 gstin.length
- 自定义元素的名称中需要包含破折号(gstin-validator、gst-in 等),
- 当你定义一个事件处理程序时,你需要传递方法名称,而不是调用它,就像我在另一个 post 中告诉你的那样:
我有一个 Polymer JS 代码可以验证 GST 识别号:
<dom-module id="gst">
<template>
<div>
<label for="gstid" class="gstlabel">GSTIN</label>
<input type="text" id="gstid" name="gstid" on-submit="gstid_validation(gstid)">
</div>
</template>
<script>
Polymer({
is: 'gst',
gstid_validation: function(gstin) {
var gstin_count = length(gstin);
var pattern = "qr/\d{2}[A-Z]{5}\d{4}[A-Z][A-Z\d]Z[A-Z\d]/";
if (gstin_count !== 15 && gstin !~ pattern) {
return 'Invalid GSTIN';
}
}.
});
</script>
</dom-module>
我在控制台中收到以下错误:
Uncaught SyntaxError: Unexpected token !
有人可以帮忙吗?
提前致谢
正如我在评论中所写,这显然是你的 if 语句的第二部分 gstin !~ pattern
。
假设您想要匹配正则表达式,正确的语法应该是这样的:
if (gstin_count !== 15 && pattern.text(gstin))
请注意,您的代码还有其他几个问题。仅举几例:
- 您的
pattern
变量包含一个字符串,而不是正则表达式。对于正则表达式,您不会使用引号作为分隔符。修饰符也放在正则表达式的末尾。 - 在 JS 中没有
length
函数,所以如果你没有自定义 最有可能实现你想要 gstin.length - 自定义元素的名称中需要包含破折号(gstin-validator、gst-in 等),
- 当你定义一个事件处理程序时,你需要传递方法名称,而不是调用它,就像我在另一个 post 中告诉你的那样: