2010-07-25 4 views
1

변수가 아닌 부분, 변수 numnber 및 다른 변수가없는 부분이 포함 된 문자열이 있습니다. 사용자 replace()을 사용하여 변수 부분 만 사용자가 선택한 값으로 변경하려고합니다. 나는 javascript에서 멍청한 녀석이고, 심지어 reg 표현에서 더 큰 멍청한 녀석이기 때문에, 이것은 사소한 일이라면 너무 미안하다.reg 표현식과 문자열을 결합한 자바 스크립트

"first nonvar part: "+any_integer+"last nonvar part". 

내가 any_integer를 대체하는 정규 표현식을 사용하고 싶습니다 :

어쨌든, 나는이 같은 문자열이 있습니다.

문자열과 일치하는 문자열과 정규 표현식을 결합하여 어떤 식 으로든 그 사이의 알 수없는 숫자가 아닌 가변적 인 부분 일 수 있습니까?

그래서 내가 사용할 수 있습니다 유사

replace("first nonvar part: "+any_number+"last nonvar part","first nonvar part: "+user_input+"last nonvar part") 

또는 무언가를.

많은 감사

+0

바꾸고 삽입하려는 문자열 및 값의 실제 예를 들려 줄 수 있습니까? 코드가 제시된 것처럼 보이면 응답 **은 ** 첫 번째 nonvar 부분 : "+ user_input +"마지막 비어 있지 않은 부분 "입니다. – Kobi

+0

@Kobi : 예, 언뜻보기에 "nonvar1"+ userinput + "nonvar2"는 해결책처럼 보이지만 문자열로 저장하여 html의 여러 부분으로 가야하는 문제가 있습니다. 일단 변화가 생기면 –

답변

1
var str = original.replace(/(non var)\d(non var)/​​​​​​​​​​​​​​​​​​​​​, "$1" + input + "$2"); 

이 아닌 변수로 "비 바르"를 교체합니다.

str = str.replace(/\d+/, replacement); 

당신이 문자열을 연결하여 정규 표현식을 만들려면, 당신은 정규 표현식을 사용 : 문자열의 nonvariant 부분이 숫자를 포함하지 않는 경우

3

, 당신은 단지 표현의 숫자를 지정할 수 있습니다 생성자 다음 nonvariant 문자열을 정규 표현식에서 특별한 의미를 가지고 모든 문자를 포함 할 경우, 그들이 필요로하는 것을

var first = "first nonvar part: "; 
var last = "last nonvar part"; 
var re = new Regexp("^" + first + "\\d+" + last + "$"); 
str = str.replace(re, replacement); 

참고 탈출한다.

+1

문자열은''\\ d + "'이어야합니다. 자바 스크립트는 일반적으로 정의되지 않은 이스케이프를 무시하므로'd +'로 남습니다. – Kobi

+0

@ 코비 : 네, 물론. 코드를 수정했습니다. – Guffa

관련 문제