.split()维护拆分字符
.split() maintaining splitting character
我需要拆分这样的字符串
var val = "$cs+55+mod($a)";
进入阵列
arr = val.split( /[+-/*()'s*]/ );
问题是将拆分器字符保留为类似的数组元素
arr = [ '$cs', '+', '55', 'mod', '(', '$a', ')' ]
不像
arr = [ '$cs', '55', 'mod', '$a' ]
您应该使用match
而不是split
。
"$cs+55+mod($a)".match(/([+-/*()'s*]|[^+-/*()'s*]+)/g);
说明:
[+-/*()'s*] -- Your provided regex
[^+-/*()'s*]+ -- Negation of the above regex using ^ and mentioning that could be more than one letter by using +
首先感谢大家的帮助。
我的问题解决了,但还没解决。
以下是的更详细用法
jsfiddler
$(function() {
var tags = [
'$c[8][clientes][clientes_iva]',
'$c[8][paises_iva][paises_iva]',
'$c[8]',
'mod(',
'$user'
];
function split( val ) {
var arr = val.split( /([+-'/*()'s*]|[^+-'/*()'s*]+)/g );
return arr;
}
function extractLast( term ) {
return split( term ).pop();
}
$( "#condition" )
.bind("keydown", function( event ) {
if ( event.keyCode === $.ui.keyCode.TAB && $( this ).autocomplete( "instance" ).menu.active ) {
event.preventDefault();
}
})
.autocomplete({
minLength: 0,
source: function( request, response ) {
response( $.ui.autocomplete.filter( tags, extractLast( request.term ) ) );
},
focus: function() {
return false;
},
select: function( event, ui ) {
var terms = split(this.value);
terms.pop();
terms.push( ui.item.value );
this.value = terms.join( "" );
return false;
}
});
});
我制作了一个视频,你们都可以看到我在做什么。
相关文章:
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- 如何将字符串拆分为字符,但在javascript中保留空格
- 通过跳过拆分字符在 javascript 中拆分字符串
- Javascript-正则表达式,用于在未转义字符上拆分字符串,例如|,但忽略|
- 将字符串拆分为具有固定字符数的数组
- .split()维护拆分字符
- 计算文本块中的字符数,并将其拆分为两列
- JavaScript:仅按字符或按字符+数字(如果存在)拆分字符串
- 正则表达式,用于从拉丁文中拆分带有重音字符的单词
- javascript:使用哈希字符拆分HREF字符串
- Javascript 拆分删除 “:” 冒号字符
- JavaScript 按行尾字符拆分字符串并读取每一行
- 如何使用客户端 Javascript 将句子中的日语字符拆分为数组
- 将句子字符串拆分为单词数组,然后将单词数组拆分为单词数组中的字符数组
- Javascript Regexp 由多个字符拆分并保持分隔符
- 按非字母字符拆分字符串
- JavaScript Jquery如何拆分与文本不同的任何字符
- 从具有括号并在括号中具有一定数量的固定值的句子中拆分字符
- 用多个正则表达式模式拆分字符串会返回不需要的值
- 将字符串保存到变量和console.log时,拆分字符串会得到不同的结果