Spreadsheet的验证类型不直接基于RegExp的规则。
要解决此问题,请使用允许您传递任何公式的自定义验证类型。 当公式返回非假值时,验证将通过。 虽然内置函数不包括 RegExp 匹配函数,但自定义函数很容易创建
<script> // Define a REGEXP_MATCH function that returns true if a string // matches a given pattern (regexp). kendo.spreadsheet.defineFunction("REGEXP_MATCH", function(str, pattern, flags){ var rx; try { rx = flags ? new RegExp(pattern, flags) : new RegExp(pattern); } catch(ex) { // could not compile regexp, return some error code return new kendo.spreadsheet.CalcError("REGEXP"); } return rx.test(str); }).args([ [ "str", "string" ], [ "pattern", "string" ], [ "flags", [ "or", "string", "null" ] ] ]); </script> <div id="spreadsheet"></div> <script> var spreadsheet = $("#spreadsheet").kendoSpreadsheet({ columnWidth: 100 }).getKendoSpreadsheet(); var sheet = spreadsheet.activeSheet(); sheet.range("A1").value("IP Address in B1:"); // Using custom validation, you can pass any formula and the cell // validates if the formula returns a non-false value (see the `from` field). sheet.range("B1").validation({ comparerType: "custom", dataType: "custom", from: 'REGEXP_MATCH(B1, "^[0-9]{1,3}\\\\.[0-9]{1,3}\\\\.[0-9]{1,3}\\\\.[0-9]{1,3}$")' }); // Note the difficulty of properly quoting a regexp in a string. // An alternative would be to write the regexp in a // variable and encode it with JSON.stringify, i.e.: // // var rx = "^[0-9]{1,3}\\.[0-9]{1,3}\\." etc // // and then pass it like this // // from: '=REGEXP_MATCH(B1, ' + JSON.stringify(rx) + ')' </script>
Kendo UI for jQuery是完整的jQuery UI组件库,可快速构建出色的高性能响应式Web应用程序。Kendo UI for jQuery提供在短时间内构建现在Web应用程序所需要的一切,从多个UI组件中选择,并轻松地将它们组合起来,创建出酷炫响应式的应用程序,同时将开发时间加快了50%。