本帖最后由 1291500406 于 2022-3-8 14:06 编辑
- ;;;函数接口
- (defun bb-for-js (func_str else_ret / ret)
- (if
- (or
- ScriptControl
- (setq ScriptControl (vlax-create-object "{e8540e26-d20e-483f-9fd5-a5a3553a7556}"))
- (setq ScriptControl (vlax-create-object "{0e59f1d5-1fbe-11d0-8ff2-00a0d10038bc}"))
- )
- (progn
- (vl-catch-all-apply 'vlax-put (list ScriptControl "language" "jscript"))
- (if
- (not
- (vl-catch-all-error-p
- (setq ret
- (vl-catch-all-apply
- ' vlax-invoke
- (list
- ScriptControl
- "eval"
- func_str
- )
- )
- )
- )
- )
- ret
- else_ret
- )
- )
- else_ret
- )
- )
;;;时间相关
- ;;;格林时间转北京时间
- (setq time_str "Fri, 19 Jul 2019 05:57:20 GMT")
- ;;; "Fri, 19 Jul 2019 05:57:20 GMT"
- (bb-for-js
- (strcat "new Date('" time_str "').toLocaleString()+ ' 星期'+['日','一','二','三','四','五','六'][new Date('" time_str "').getDay()];" )
- "无com组件"
- );;;返回值 "2019年7月19日 13:57:20 星期五"
- ;;;当前时间
- (bb-for-js
- "new Date().toLocaleTimeString();"
- "无com组件"
- )
- ;;;返回值 "10:15:39"
Date 对象属性属性 | 描述 | constructor | 返回创建 Date 对象原型的函数。 | prototype | 允许您向对象添加属性和方法。 |
Date 对象方法方法 | 描述 | getDate() | 返回月中的第几天(从 1 到 31)。 | getDay() | 返回星期几(0-6)。 | getFullYear() | 返回年份。 | getHours() | 返回小时(从 0-23)。 | getMilliseconds() | 返回毫秒(0-999)。 | getMinutes() | 返回分钟(从 0-59)。 | getMonth() | 返回月份(从 0-11)。 | getSeconds() | 返回秒数(从 0-59)。 | getTime() | 返回自 1970 年 1 月 1 日午夜以来与指定日期的毫秒数。 | getTimezoneOffset() | 返回 UTC 时间与本地时间之间的时差,以分钟为单位。 | getUTCDate() | 根据世界时,返回月份中的第几天(从 1 到 31)。 | getUTCDay() | 根据世界时,返回星期几(0-6)。 | getUTCFullYear() | 根据世界时,返回年份。 | getUTCHours() | 根据世界时,返回小时(0-23)。 | getUTCMilliseconds() | 根据世界时,返回毫秒数(0-999)。 | getUTCMinutes() | 根据世界时,返回分钟(0-59)。 | getUTCMonth() | 根据世界时,返回月份(0-11)。 | getUTCSeconds() | 根据世界时,返回秒数(0-59)。 | getYear() | 已弃用。请改用 。 | now() | 返回自 1970 年 1 月 1 日午夜以来的毫秒数。 | parse() | 解析日期字符串并返回自 1970 年 1 月 1 日以来的毫秒数。 | setDate() | 设置 Date 对象中月的某一天。 | setFullYear() | 设置日期对象的年份 | setHours() | 设置日期对象的小时。 | setMilliseconds() | 设置日期对象的毫秒数。 | setMinutes() | 设置日期对象的分钟数。 | setMonth() | 设置日期对象的月份。 | setSeconds() | 设置日期对象的秒数。 | setTime() | 将日期设置为 1970 年 1 月 1 日之后/之前的指定毫秒数。 | setUTCDate() | 根据世界时,设置 Date 对象中月份的一天。 | setUTCFullYear() | 根据世界时,设置日期对象的年份。 | setUTCHours() | 根据世界时,设置日期对象的小时。 | setUTCMilliseconds() | 根据世界时,设置日期对象的毫秒数。 | setUTCMinutes() | 根据世界时,设置日期对象的分钟数。 | setUTCMonth() | 根据世界时,设置日期对象的月份。 | setUTCSeconds() | 根据世界时,设置日期对象的秒数。 | setYear() | 已弃用。请改用 。 | toDateString() | 将 Date 对象的日期部分转换为可读字符串。 | toGMTString() | 已弃用。请改用 。 | toISOString() | 使用 ISO 标准将日期作为字符串返回。 | toJSON() | 以字符串形式返回日期,格式为 JSON 日期。 | toLocaleDateString() | 使用区域设置约定将 Date 对象的日期部分作为字符串返回。 | toLocaleTimeString() | 使用区域设置约定将 Date 对象的时间部分作为字符串返回。 | toLocaleString() | 使用区域设置约定将 Date 对象转换为字符串。 | toString() | 将 Date 对象转换为字符串。 | toTimeString() | 将 Date 对象的时间部分转换为字符串。 | toUTCString() | 根据世界时,将 Date 对象转换为字符串。 | UTC() | 根据 UTC 时间,返回自 1970 年 1 月 1 日午夜以来的日期中的毫秒数。 | valueOf() | 返回 Date 对象的原始值。 |
;;;运算相关
JavaScript random() 方法实例返回 0(含)和 1(不含)之间的随机数: Math.random();
- ;;;随机数
- (progn
- (setq
- bmin 100
- bmax 300
- )
- (bb-for-js
- (strcat
- "Math.floor(Math.random()*" (vl-princ-to-string (- bmax bmin)) ")+" (vl-princ-to-string bmin) ";"
- )
- bmin
- )
- )
- 100 300之内数字
;;;字符串相关
JavaScript length 属性定义和用法length 属性可返回字符串中的字符数目。 语法stringObject.length
- ;;;返回字符串长度
- (setq str "2019年7月19日 13:57:20 星期五")
- (bb-for-js (strcat "'" str "'.length;")nil);;;返回值: 23
- (strlen str);;;2010返回值: 29
- (strlen str);;;2022返回值: 23
JavaScript replace() 方法定义和用法replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。 语法stringObject.replace(regexp/substr,replacement)参数 | 描述 | regexp/substr | 必需。规定子字符串或要替换的模式的 RegExp 对象。 请注意,如果该值是一个字符串,则将它作为要检索的直接量文本模式,而不是首先被转换为 RegExp 对象。 | replacement | 必需。一个字符串值。规定了替换文本或生成替换文本的函数。 | 返回值一个新的字符串,是用 replacement 替换了 regexp 的第一次匹配或所有匹配之后得到的。 说明字符串 stringObject 的 replace() 方法执行的是查找并替换的操作。它将在 stringObject 中查找与 regexp 相匹配的子字符串,然后用 replacement 来替换这些子串。如果 regexp 具有全局标志 g,那么 replace() 方法将替换所有匹配的子串。否则,它只替换第一个匹配子串。 replacement 可以是字符串,也可以是函数。如果它是字符串,那么每个匹配都将由字符串替换。但是 replacement 中的 $ 字符具有特定的含义。如下表所示,它说明从模式匹配得到的字符串将用于替换。 字符 | 替换文本 | $1、$2、...、$99 | 与 regexp 中的第 1 到第 99 个子表达式相匹配的文本。 | $& | 与 regexp 相匹配的子串。 | $` | 位于匹配子串左侧的文本。 | $' | 位于匹配子串右侧的文本。 | $$ | 直接量符号。 |
注意:ECMAScript v3 规定,replace() 方法的参数 replacement 可以是函数而不是字符串。在这种情况下,每个匹配都调用该函数,它返回的字符串将作为替换文本使用。该函数的第一个参数是匹配模式的字符串。接下来的参数是与模式中的子表达式匹配的字符串,可以有 0 个或多个这样的参数。接下来的参数是一个整数,声明了匹配在 stringObject 中出现的位置。最后一个参数是 stringObject 本身。
- ;;;文字的内容替换
- (setq
- str "替换字符串例子,替换文字内容,替换内容"
- old "替换"
- new "换个屁"
- )
- (bb-for-js
- (strcat "'" str "'.replace(/" old "/g,'" new "');" )
- "无com组件"
- )
- ;;;返回值 "换个屁字符串例子,换个屁文字内容,换个屁内容"
|