获取javascript字符串中的最后一个字符,忽略空格

获取javascript字符串中的最后一个字符,忽略空格,javascript,regex,string,Javascript,Regex,String,给定字符串: 234+(注意+后面的空格) 我想编写一个函数,确定是否存在某个字符(在本例中为+) 背景 我输入了一个数学方程式 我想有按钮,可以添加2位,3位数字等,同时也允许用户输入自己的数字和运营商 因此,如果输入为空,并且用户单击3位按钮,我希望将234添加到输入中 如果他再次单击,我想添加+234(因为那里没有操作员) 现在,如果用户键入另一个+(可选后跟任意数量的空格),我只想再次添加234 tldr 如何读取字符串中最后一个非空白字符? 首选jquery,香草也可以 .(?=\s*

给定字符串:

234+
(注意
+
后面的空格)

我想编写一个函数,确定是否存在某个字符(在本例中为
+

背景

我输入了一个数学方程式

我想有按钮,可以添加2位,3位数字等,同时也允许用户输入自己的数字和运营商

因此,如果输入为空,并且用户单击3位按钮,我希望将
234
添加到输入中

如果他再次单击,我想添加
+234
(因为那里没有操作员)

现在,如果用户键入另一个
+
(可选后跟任意数量的空格),我只想再次添加
234

tldr

如何读取字符串中最后一个非空白字符? 首选jquery,香草也可以

.(?=\s*$)
  • -字符
  • (?=)
    -正向前瞻以验证是否存在,但不包括在匹配中
  • \s*
    -零个或多个空格
  • $
    -直到字符串结束

首先删除所有空白,然后只获取最后一个字符并与其他字符进行比较

var str = "234 + ";

str = str.trim();

var last = str.charAt(str.length - 1);


输入字符串是多行的,以说明不同的可能性。

谢谢,看起来不错。但我认为adeneo的答案更为冗长;re=/(\S)(?=\S*$)/;lastNonSpaceSymbol=str.match(re)[0]你能把这个扩展到与sqrt(234)匹配吗?那么,这就是我的答案:没关系。。再想一想,我甚至不需要匹配它,因为这不是手术。如果有一个sqrt(234),我可以继续添加
+
,就好像它是一个普通的数字一样。RIM不会删除中间的空格string@RIYAJKHAN-不,它删除了字符串开头和结尾的空格,这在这里就足够了
str = '234 +   \n 823 + sqrt(4)       \n 7880 - cos(16)\t'
re = /(\S)+(?=\s*$)/gm
lastWords = str.match(re)
console.log(lastWords)  //logs ["+", "sqrt(4)", "cos(16)"]