对输入的数据做内容检查保证使其为纯数字
案例代码
function 计算编号() {
var sz = new Array();
sz[0] = InputBox("请输入打印份数", "提示");
if(checkBox(sz[0])) return;
sz[1] = InputBox("请输入起始编号", "提示");
if(checkBox(sz[1])) return;
}
InputBox函数会获取输入内容,函数语法如下
InputBox(Prompt, [Title], [Default], [XPos], [YPos])
参数说明:
Prompt(必要):开发者想要显示在对话框中的提示文本,可以是一个字符串表达式,一般为一条简短的消息,用于提示用户输入。
Title(可选):对话框的标题,通常显示在对话框的标题栏中,可以是一个字符串表达式。如果省略此参数,将会显示默认程序名称WPS表格。
Default(可选):用户输入时存在输入框的默认值,可以是一个字符串表达式。如果用户点击"确定",将返回此默认值,点击"取消",将返回空字符。如果省略了 Default ,文本框将显示为空。
XPos(可选):指定对话框左边缘与屏幕的左边缘的水平距离(单位缇)的数值表达式。 如果省略了 xpos,对话框将水平居中。
YPos(可选):指定对话框上边缘与屏幕的上边缘的垂直距离(单位缇)的数值表达式。 如果省略了 ypos,对话框将垂直居中。
function checkBox(userInput){
// 使用正则表达式匹配字符串内的非数字字符
if( !/^\d+$/.test(userInput)){
MsgBox("输入错误,取消输入或输入了非数字字符", 0+48, "警告");
return true;
} else {
// 先移除字符串中所有的空格,然后将其转换为数字
var numberInput = Number(userInput.replace(/\s/g, ''));
if(numberInput < 1){
MsgBox("输入错误,输入数字大小至少为1", 0+48, "警告");
return true;
}
}
return false;
}
checkBox获取用户输入传递的值之后,会使用2个正则表达式匹配 输入内容,然后返回一个布尔值,告知主函数程序是否运行。
/^\d+$/:这个正则表达式会匹配字符串,从开始(^
)到结束($
)是否完全由一个或多个数字(\d+
)组成。然后用.test()方法检查userInput是否匹配正则表达式,即是否为纯数字构成(不会排除空字符),是纯数字返回ture,反之返回flase,然后使用!取反值。
.replace(/\s/g, ''): 表示使用
正则表达式发现字符串中的所有空白字符,第一个/表示表达式开始,\s表示
匹配包括空格、制表符、换页符等在内的任何空白符,第2个/表示表达式结束。g
是一个标志,代表“全局”匹配,意味着匹配字符串中所有可能的地方,而不只是第一个。.replace()
并将它们替换为无,即删除。
Number会将字符串类型的数字转换为数值型
MsgBox函数和InputBox类似,函数语法如下
InputBox(Prompt, [Buttons], [Title])
Prompt(必要):开发者想要显示在消息框中的提示文本,可以是一个字符串表达式,一般为一条简短的消息,用于通知用户。
Buttons(可选): 数值表达式,用于指定要显示按钮的数量和类型、使用的图标样式、默认按钮的标识和消息框的形式的值(JSMsgBoxStyle)。 如果省略,则 buttons 的默认值为 0。
Title(可选):对话框的标题,通常显示在对话框的标题栏中,可以是一个字符串表达式。如果省略此参数,将会显示默认程序名称WPS表格。
用户对MsgBox弹出消息框的各种动作都有对应的返回值,此外,Buttons不同的值(JSMsgBoxStyle)代表不同的消息框样式,内容参考下面的连接