javascript - iMacros - 删除字符串中的最后一个字符

标签 javascript java string split imacros

我有一个像“673.35”这样的字符串。定义为 VAR3。

我只想删除最后一个“.”所以我剩下“673.35”。这对我来说非常棘手。在 Google Chrome 上使用免费版 iMacros 插件。

我不能使用拆分函数或替换函数我不认为因为我的字符串中总是有一个小数点。

SET !VAR3 EVAL("var s = '{{!VAR3}}'; var x,y,z; y = s.split('.'); z = y[1].split('.'); z[0];")

这是我尝试过的,但显然它返回“35”,因为我的字符串中有两个小数点。

最佳答案

为了解决此类问题,发明了“正则表达式”。我不知道 imacros 是否可以处理正则表达式,但是由于您添加了“java”作为标记,我在这里提供了如何用 java 编写的解决方案:

    String s = "673.35.";
    String regexp = "^(.*)(\\.?)$";
    Matcher m = Pattern.compile(regexp).matcher(s);

    if ( m.matches() )
    {
        String result = m.group( 1);
        System.out.println( "result: " + result );
    }
    else
    {
        System.out.println( "no match");
    }

这个正则表达式适用于

673.53. > 673.53
673.53  > 673.53
12345.  > 12345
12345   > 12345

正则表达式看起来很神秘,但它们非常强大。在 java.util.regex.Pattern 的 java 文档中了解它。这里对上面的正则表达式进行一些解释:'^'是“行/字符串的开头”,'.*'是“任何字符,'\\.'是“一个点”(因为'.'是“任何字符”,点本身必须被'\'转义,在java字符串常量中使用'\'也必须被转义,因此两个'\'),' ?'是“一次或无”(前面的定义,这里是点) '$' 是“行尾/字符串”。括号将搜索结果分组以便之后访问它(“m.group(1)”)。

关于javascript - iMacros - 删除字符串中的最后一个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58902231/

相关文章:

javascript - 使用 Ajax JSON 将 map 发送到 servlet

javascript - 如何从 React Native javascript 语法切换到 es6

java - 使用 jackson 将 json 对象列表转换为 hashmap

c - 这个程序有什么问题?

javascript - 如何使用 ' 将字符串转换为标准字符

javascript - 在JSX里面渲染React变量,具体怎么到 'tokenize' React Router结构?是否可以?

javascript - react 导航 v5 : How to get route params of the parent navigator inside the child screen

java - 如何访问此层次结构中的文件?

java - 冰雹.utils.java.FatalError : IllegalStateException: unread block data

java - 在Java中的字符串中查找第二次出现的子字符串